-
Notifications
You must be signed in to change notification settings - Fork 15
C. MobPush Android端离线集成配置
orange edited this page Nov 19, 2018
·
7 revisions
如果Mob官网后台配置完成,同时需要厂商渠道也配置完成后,那么就可以进行客户端的集成了,实现推送功能了;如若没有集成,请先进行Mob官网后台配置,需要厂商渠道进行厂商渠道配置,不需要可不配置。 如果不使用Gradle方式集成的话,也可以通过下载jar引入到项目的离线方式集成。那么怎么集成呢?
- 在Mob官网的下载中心,选择Android版,找到MobPush,如果支持厂商通道进行勾选附加选项,如果不支持则不勾选,然后进行一键下载并在弹窗中选择获取离线SDK即可
- 解压下载的压缩包,可得到如下目录下的jar包集,把这些jar copy到自己的应用项目下,同步即可生效
- 添加权限
<uses-permission android:name=”android.permission.INTERNET”/>
<uses-permission android:name=”android.permission.READ_EXTERNAL_STORAGE”/>
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”/>
<uses-permission android:name=”android.permission.GET_TASKS”/>
<uses-permission android:name=”android.permission.ACCESS_WIFI_STATE”/>
<uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE”/>
<uses-permission android:name=”android.permission.CHANGE_WIFI_STATE”/>
<uses-permission android:name=“android.permission.WAKE_LOCK”/>
<uses-permission android:name=“android.permission.VIBRATE”/>
<uses-permission android:name=”android.permission.ACCESS_FINE_LOCATION”/>
- 在application标签内添加meta信息
<meta-data
android:name="Mob-AppKey”
android:value=”替换为mob官方申请的appkey"/>
<meta-data
android:name="Mob-AppSecret”
android:value=”替换为mob官方申请的appkey对应的appSecret"/>
- 在application标签内添加activity信息
<service
android:name="com.mob.pushsdk.MobService"
android:exported="true"
android:process=":mobservice">
<intent-filter>
<action android:name="com.mob.intent.MOB_SERVICE"/>
</intent-filter>
</service>
- 在application节点下增加APPID
<meta-data
android:name="com.huawei.hms.client.appid"
<!-- value的值"xxx"用实际申请的应用ID替换,来源于开发者联盟网站应用的服务详情。-->
android:value="华为appID">
</meta-data>
- 在application节点下增加activity
<activity
android:name="com.huawei.hms.activity.BridgeActivity"
android:configChanges="orientation|locale|screenSize|layoutDirection|fontScale"
android:excludeFromRecents="true"
android:exported="false"
android:hardwareAccelerated="true"
android:theme="@android:style/Theme.Translucent" >
<meta-data
android:name="hwc-theme"
android:value="androidhwext:style/Theme.Emui.Translucent" />
</activity>
- 在application节点下增加UpdateProvider,用于HMS-SDK引导升级HMS,提供给系统安装器读取升级文件。
<provider
android:name="com.huawei.hms.update.provider.UpdateProvider"
<!--"xxx.xxx.xxx"用实际的应用包名替换-->
android:authorities="xxx.xxx.xxx.hms.update.provider"
android:exported="false"
android:grantUriPermissions="true" >
</provider>
- 在manifest节点下增加所需权限
<!--HMS-SDK引导升级HMS功能,访问OTA服务器需要网络权限-->
<uses-permission android:name="android.permission.INTERNET" />
<!--HMS-SDK引导升级HMS功能,保存下载的升级包需要SD卡写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--检测网络状态-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--检测wifi状态-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!--为了获取用户手机的IMEI,用来唯一的标识用户。-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!--如果是安卓8.0,应用编译配置的targetSdkVersion>=26,请务必添加以下权限 -->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
- 在application节点下增加2个receiver,用来接收广播信息
<receiver android:name="com.mob.pushsdk.plugins.huawei.PushHaiWeiRevicer">
<intent-filter>
<action android:name="com.huawei.android.push.intent.REGISTRATION" />
<action android:name="com.huawei.android.push.intent.RECEIVE" />
<action android:name="com.huawei.android.push.intent.CLICK" />
<action android:name="com.huawei.intent.action.PUSH_STATE" />
</intent-filter>
</receiver>
<receiver android:name="com.huawei.hms.support.api.push.PushEventReceiver" >
<intent-filter>
<!-- 接收通道发来的通知栏消息 -->
<action android:name="com.huawei.intent.action.PUSH" />
</intent-filter>
</receiver>
- 添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.VIBRATE"/>
<permission
android:name="com.xiaomi.mipushdemo.permission.MIPUSH_RECEIVE"
android:protectionLevel="signature" /> <!--这里com.xiaomi.mipushdemo改成app的包名-->
<uses-permission android:name="com.xiaomi.mipushdemo.permission.MIPUSH_RECEIVE" /><!--这里com.xiaomi.mipushdemo改成app的包名-->
- 推送服务需要配置的service和receiver
<service
android:enabled="true"
android:exported="true"
android:name="com.xiaomi.mipush.sdk.PushMessageHandler" />
<service
android:enabled="true"
android:name="com.xiaomi.mipush.sdk.MessageHandleService" />
<!--注:此service必须在2.2.5版本以后(包括2.2.5版本)加入-->
<receiver
android:exported="true"
android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<receiver
android:name="com.mob.pushsdk.plugins.xiaomi.PushXiaoMiRevicer"
android:exported="true">
<intent-filter>
<action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE" />
</intent-filter>
<intent-filter>
<action android:name="com.xiaomi.mipush.MESSAGE_ARRIVED" />
</intent-filter>
<intent-filter>
<action android:name="com.xiaomi.mipush.ERROR" />
</intent-filter>
</receiver>
- 添加meta-data
<meta-data
android:name="com.mob.push.xiaomi.appid"
android:value="小米appID" />
<meta-data
android:name="com.mob.push.xiaomi.appkey"
android:value="小米appKey" />
- 添加权限
<uses-permission android:name="com.meizu.flyme.push.permission.RECEIVE" />
<uses-permission android:name="包名.push.permission.MESSAGE" />
<permission android:name="包名.push.permission.MESSAGE" />
<uses-permission android:name="com.meizu.c2dm.permission.RECEIVE" />
<uses-permission android:name="包名.permission.C2D_MESSAGE" />
permission android:name="包名.permission.C2D_MESSAGE" />
- 注册接收消息Receiver
<receiver android:name="com.mob.pushsdk.plugins.meizu.PushMeiZuRevicer">
<intent-filter>
<action android:name="com.meizu.flyme.push.intent.MESSAGE" />
<action android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" />
<action android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK" />
<action android:name="com.meizu.c2dm.intent.REGISTRATION" />
<action android:name="com.meizu.c2dm.intent.RECEIVE" />
<category android:name="包名" />
</intent-filter>
</receiver>
- 添加魅族AppID和AppKey
<meta-data
android:name="com.mob.push.meizu.appid"
android:value="魅族AppId" />
<meta-data
android:name="com.mob.push.meizu.appkey"
android:value="魅族AppKey" />
-
下载OPPO离线jar包,并添加相关依赖:点击下载
-
配置清单文件
<!--OPPO 推送权限 -->
<uses-permission android:name="com.coloros.mcs.permission.RECIEVE_MCS_MESSAGE"/>
<!—注册OPPO推送服务 -->
<service
android:name="com.mob.pushsdk.plugins.oppo.PushOppoReceiver"
android:permission="com.coloros.mcs.permission.SEND_MCS_MESSAGE">
<intent-filter>
<action android:name="com.coloros.mcs.action.RECEIVE_MCS_MESSAGE"/>
</intent-filter>
</service>
<!—添加OPPO appKey和appSecret -->
<meta-data
android:name="com.mob.push.oppo.appkey"
android:value="OPPO的appKey" />
<meta-data
android:name="com.mob.push.oppo.appsecret"
android:value="OPPO的appSecret" />