mPaaS 适配 targetSdkVersion 31

从 mPaaS 10.2.3.4 起,mPaaS 增加了对 targetSdkVersion 31 的支持。如果您的应用需要将 targetSdkVersion 升级到 31,请 使用 mPaaS 插件 将 SDK 更新到 10.2.3.4 或以上版本,并按照下文进行适配和回归相关功能。

适配 targetSdkVersion 31

前置条件

修改 targetSdkVersion

原生 AAR 接入方式

在工程主 module 下的 build.gradle 文件中修改属性 targetSdkVersion 31。

Portal&Bundle 接入方式

  • 在 Portal 工程主 module 下的 build.gradle 文件中修改属性 targetSdkVersion 31。

  • 在 Bundle 工程中的 targetSdkVersion 可不修改,但不得高于 Portal 工程。

更安全的组件导出

targetSdkVersion 31 的应用需要为包含 intent-filter 的 Activity、Service、BroadcastReceiver 显式声明 exported 属性。

社交分享

  • 如接入了 QQ 分享,请在 AndroidManifest.xml 中添加以下配置:

    <!-- QQ 分享 target 31 适配需要合并 -->
    <activity
          android:name="com.tencent.tauth.AuthActivity"
          android:launchMode="singleTask"
          android:exported="true"
          android:noHistory="true">
          <intent-filter>
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="android.intent.category.BROWSABLE" />
          <!-- QQ 分享ID,格式为"tencent+QQ 分享 ID"。请保证 QQ 分享ID 与代码中设置的 QQ 分享 ID 相同,否则会导致分享回调异常 -->
          <data android:scheme="xxxxx" />
          </intent-filter>
    </activity>
  • 如接入了微博分享,请在 AndroidManifest.xml 中添加以下配置:

    <!-- 微博分享 target 31 适配需要合并 -->
    <activity
          android:name="com.sina.weibo.sdk.share.WbShareResultActivity"
          android:configChanges="orientation|screenSize|keyboardHidden"
          android:exported="true"
          android:launchMode="singleTop"
          android:theme="@android:style/Theme.Translucent.NoTitleBar"
          tools:replace="configChanges">
          <intent-filter>
              <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
              <category android:name="android.intent.category.DEFAULT" />
          </intent-filter>
          <intent-filter>
              <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_STORY" />
              <category android:name="android.intent.category.DEFAULT" />
          </intent-filter>
    </activity>

消息推送

  • 如接入了消息推送,请参考消息推送 接入 Androidcom.alipay.pushsdk.BroadcastActionReceiver 添加 exported 属性。

  • 如接入了厂商通道华为推送 HMS5,请参考 华为推送文档 升级到适配后的版本;如暂时无法升级,请在 AndroidManifest.xml 中添加以下配置:

    <!-- 华为推送 target 31 适配需要合并 -->
    <receiver
        android:name="com.huawei.hms.support.api.push.PushMsgReceiver"
        android:directBootAware="true"
        android:exported="true">
        <intent-filter>
            <action android:name="com.huawei.intent.action.PUSH_DELAY_NOTIFY" />
            <action android:name="com.huawei.intent.action.PUSH" />
        </intent-filter>
    </receiver>
    <receiver
        android:name="com.huawei.hms.support.api.push.PushReceiver"
        android:directBootAware="true"
        android:exported="true">
        <intent-filter>
            <action android:name="com.huawei.android.push.intent.REGISTRATION" />
            <action android:name="com.huawei.android.push.intent.RECEIVE" />
        </intent-filter>
    </receiver>      	
  • 如接入了厂商通道华为推送 HMS2,请参考 接入华为推送 - HMS2.x 版本com.huawei.hms.update.provider.UpdateProvidercom.alipay.pushsdk.thirdparty.huawei.HuaweiPushReceiver 添加 exported 属性。

  • 如接入了厂商通道 OPPO 推送,请参考 OPPO 版本更新说明 升级到适配后的版本,并参考 OPPO 推送CompatibleDataMessageCallbackServiceDataMessageCallbackService 添加 exported 属性。

UC 内核

如使用了 UC 内核闪退抓取功能,请参考 抓取 UC 内核闪退ClientMonitorWakeupReceiver 添加 exported 属性。

回归测试

全量回归测试的设备中必须包含 Android 12 或以上版本的设备。回归测试中您需要重点关注以下组件功能(如果使用):

组件

验证项目

移动网关

  • 使用国密 SSL 是否正常

消息推送

  • 厂商通道推送消息是否正常

  • 消息通知点击跳转是否正常

小程序

  • 蓝牙 API 是否正常

实时发布升级

  • 升级包下载和取消是否正常

社交分享

  • 分享到各平台是否正常

智能双录

  • 初始化是否正常

  • 各原子能力是否正常