uniPush

需要拷贝的文件

需要引入工程的jar/aar文件

需要将以下jar/aar文件放到工程的libs目录下

路径文件
SDK\libsaps-release.aar, aps-unipush-release.aar

gradle配置

打开build.gradle,在defaultConfig添加manifestPlaceholders节点,如下图所示,将io.dcloud.HBuilder替换成自己的应用包名,将appid等信息替换成申请之后的appid等。

  1. android {
  2. defaultConfig {
  3. manifestPlaceholders = [
  4. "plus.unipush.appid" : "pPyZWvH3Fa6PXba19ID0091",
  5. "plus.unipush.appkey" : "b7dOGlNPHR7pqwUxcXPVi44",
  6. "plus.unipush.appsecret": "IxVYAT9qws8dlNElacmSg12",
  7. "apk.applicationId":"io.dcloud.HBuilder"
  8. ]
  9. }
  10. }

厂商配置

添加下列内容到androidmanifest.xml中(未申请平台无需添加)

  1. <meta-data
  2. android:name="MIPUSH_APPID"
  3. android:value="XM_${XIAOMI_APP_ID}" />
  4. <meta-data
  5. android:name="MIPUSH_APPKEY"
  6. android:value="XM_${XIAOMI_APP_KEY}" />
  7. <meta-data
  8. android:name="MEIZUPUSH_APPID"
  9. android:value="MZ_${MEIZU_APP_ID}" />
  10. <meta-data
  11. android:name="MEIZUPUSH_APPKEY"
  12. android:value="MZ_${MEIZU_APP_KEY}" />
  13. <meta-data
  14. android:name="com.huawei.hms.client.appid"
  15. android:value="${HUAWEI_APP_ID}" />
  16. <meta-data
  17. android:name="OPPOPUSH_APPKEY"
  18. android:value="OP_${OPPO_APP_KEY}" />
  19. <meta-data
  20. android:name="OPPOPUSH_APPSECRET"
  21. android:value="OP_${OPPO_APP_SECRET}" />
  22. <meta-data
  23. android:name="com.vivo.push.app_id"
  24. android:value="${VIVO_APP_ID}" />
  25. <meta-data
  26. android:name="com.vivo.push.api_key"
  27. android:value="${VIVO_APP_KEY}" />

修改build.gradle,添加对应平台申请的appkey或appid(键名必须统一,如XIAOMI_APP_ID比如同时存在于build.gradle文件和Androidmanifest.xml文件中),如下所示:

  1. android {
  2. defaultConfig {
  3. manifestPlaceholders = [
  4. "plus.unipush.appid" : "pPyZWvH3Fa6PXba19ID0091",
  5. "plus.unipush.appkey" : "b7dOGlNPHR7pqwUxcXPVi45",
  6. "plus.unipush.appsecret": "IxVYAT9qws8dlNElacmSg12",
  7. "apk.applicationId":"io.dcloud.HBuilder",
  8. "XIAOMI_APP_ID":"ccccccccc"
  9. ]
  10. }
  11. }

dcloud_properties.xml配置

在properties中添加如下配置,features节点与services节点必须同时配置!

  1. <properties>
  2. <features>
  3. <feature name="Push" value="io.dcloud.feature.aps.APSFeatureImpl">
  4. <module name="unipush" value="io.dcloud.feature.unipush.GTPushService"/>
  5. </feature>
  6. </features>
  7. <services>
  8. <service name="push" value="io.dcloud.feature.aps.APSFeatureImpl"/>
  9. </services>
  10. </properties>

其余配置

oppo集成uniPush时需在Androidmanifest.xml的入口activity中添加如下配置:

  1. <activity
  2. android:name="io.dcloud.PandoraEntry">
  3. <intent-filter>
  4. <action android:name="android.intent.action.MAIN" />
  5. <category android:name="android.intent.category.LAUNCHER" />
  6. </intent-filter>
  7. /*oppo配置开始*/
  8. <intent-filter>
  9. <action android:name="android.intent.action.oppopush" />
  10. <category android:name="android.intent.category.DEFAULT" />
  11. </intent-filter>
  12. /*oppo配置结束*/
  13. </activity>

个推推送

需要拷贝的文件

需要引入工程的jar/aar文件

需要将以下jar/aar文件放到工程的libs目录下

路径文件
SDK\libsaps-release.aar, aps-igexin-release.aar

Androidmainfest.xml文件需要修改的项

需要在application节点前添加权限

因Android L(android 5.0)系统自身限制,多个应用安装时,如果拥有同一个Service权限,会导致权限冲突,只能安装一个带有此权限的应用。对此,个推SDK在声明自定义权限时需要添加apk的包名以避免和其他使用个推的应用冲突。

  1. <uses-permission android:name="android.permission.INTERNET"/>
  2. <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
  3. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  4. <uses-permission android:name="android.permission.WAKE_LOCK"/>
  5. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
  6. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  7. <uses-permission android:name="android.permission.VIBRATE"/>
  8. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  9. <uses-permission android:name="android.permission.CALL_PHONE"/>
  10. <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
  11. <uses-permission android:name="getui.permission.GetuiService.$你的APK包名"/>
  12. <permission android:name="getui.permission.GetuiService.$你的APK包名" android:protectionLevel="normal"/>

<application>节点下配置如下代码

  1. <meta-data android:name="PUSH_APPID" android:value="$你自己的APPID"/>
  2. <meta-data android:name="PUSH_APPKEY" android:value="$你的appkey"/>
  3. <meta-data android:name="PUSH_APPSECRET" android:value="$你的appsecret"/>
  4. <service
  5. android:name="com.igexin.sdk.PushService"
  6. android:exported="true"
  7. android:label="NotificationCenter"
  8. android:process=":pushservice">
  9. <intent-filter>
  10. <action android:name="com.igexin.sdk.action.service.message"/>
  11. </intent-filter>
  12. </service>
  13. <receiver android:name="com.igexin.sdk.PushReceiver">
  14. <intent-filter>
  15. <action android:name="android.intent.action.BOOT_COMPLETED"/>
  16. <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
  17. <action android:name="android.intent.action.USER_PRESENT"/>
  18. <action android:name="com.igexin.sdk.action.refreshls"/>
  19. <action android:name="android.intent.action.MEDIA_MOUNTED"/>
  20. <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
  21. <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
  22. </intent-filter>
  23. </receiver>
  24. <activity
  25. android:name="com.igexin.sdk.PushActivity"
  26. android:excludeFromRecents="true"
  27. android:exported="false"
  28. android:process=":pushservice"
  29. android:taskAffinity="com.igexin.sdk.PushActivityTask"
  30. android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
  31. <activity
  32. android:name="com.igexin.sdk.GActivity"
  33. android:excludeFromRecents="true"
  34. android:exported="true"
  35. android:process=":pushservice"
  36. android:taskAffinity="com.igexin.sdk.PushActivityTask"
  37. android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
  38. <receiver android:name="io.dcloud.feature.apsGt.GTNotificationReceiver">
  39. <intent-filter>
  40. <action android:name="android.intent.action.BOOT_COMPLETED"/>
  41. <action android:name="填写APK的包名.__CREATE_NOTIFICATION"/>
  42. <action android:name="填写APK的包名.__REMOVE_NOTIFICATION"/>
  43. <action android:name="填写APK的包名.__CLEAR_NOTIFICATION"/>
  44. <action android:name="填写APK的包名.__CLILK_NOTIFICATION"/>
  45. </intent-filter>
  46. </receiver>
  47. <service
  48. android:name="io.dcloud.feature.apsGt.GTNormalIntentService"/>

dcloud_properties.xml需要添加如下代码

dcloud_properties.xml文件在assets/data目录下

features节点下添加

  1. <feature name="Push" value="io.dcloud.feature.aps.APSFeatureImpl"><module name="igexin" value="io.dcloud.feature.apsGt.GTPushService"/></feature>

services节点下添加

  1. <service
  2. name="push"
  3. value="io.dcloud.feature.aps.APSFeatureImpl" />

GooglePlay渠道配置

aar 引用

SDK提供aps-igexin-gp-release.aar和aps-unipush-gp-release.aar,打包应用上传google play时,替换原aps-igexin-release.aar或aps-unipush-release.aar。注意,google play版SDK与原版SDK存在冲突,所以使用时只能保留其中一个。

AndroidManifest.xml配置

  • google play版uniPush配置

在AndroidManifest.xml中添加如下配置。

  1. <activity
  2. android:name="com.igexin.sdk.PrivacyActivity"
  3. android:exported="false"/>
  • google play版个推配置

在原个推离线配置基础上将如下配置添加到AndroidManifest.xml中。

  1. <service
  2. android:name="io.dcloud.feature.apsGt.GTPushDevService"
  3. android:exported="true"
  4. android:label="PushService"
  5. android:process=":pushservice" />
  6. <activity
  7. android:name="com.igexin.sdk.PrivacyActivity"
  8. android:exported="false"/>

发现错误?想参与编辑?在 GitHub 上编辑此页面!