Skip to content

C. MobPush Android端离线集成配置

orange edited this page Nov 19, 2018 · 7 revisions

如果Mob官网后台配置完成,同时需要厂商渠道也配置完成后,那么就可以进行客户端的集成了,实现推送功能了;如若没有集成,请先进行Mob官网后台配置,需要厂商渠道进行厂商渠道配置,不需要可不配置。 如果不使用Gradle方式集成的话,也可以通过下载jar引入到项目的离线方式集成。那么怎么集成呢?

下载MobPush离线包

  1. 在Mob官网的下载中心,选择Android版,找到MobPush,如果支持厂商通道进行勾选附加选项,如果不支持则不勾选,然后进行一键下载并在弹窗中选择获取离线SDK即可
  2. 解压下载的压缩包,可得到如下目录下的jar包集,把这些jar copy到自己的应用项目下,同步即可生效

进行AndroidManifest.xml配置

  1. 添加权限
<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”/>
  1. 在application标签内添加meta信息
<meta-data
 
    android:name="Mob-AppKey”
android:value=”替换为mob官方申请的appkey"/>

<meta-data
 
    android:name="Mob-AppSecret”
android:value=”替换为mob官方申请的appkey对应的appSecret"/>
  1. 在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>

集成厂商通道的,还需添加厂商配置

华为厂商配置

  1. 在application节点下增加APPID
<meta-data  
    
    android:name="com.huawei.hms.client.appid"
  
  <!-- value的值"xxx"用实际申请的应用ID替换,来源于开发者联盟网站应用的服务详情。-->
  
  android:value="华为appID">

</meta-data>    
  1. 在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>
  1. 在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>
  1. 在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" />    
  1. 在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>     

小米推送配置

  1. 添加权限
<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的包名-->
  1. 推送服务需要配置的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>
  1. 添加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" />

魅族推送配置

  1. 添加权限
<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" />
  1. 注册接收消息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>
  1. 添加魅族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推送配置

  1. 下载OPPO离线jar包,并添加相关依赖:点击下载

  2. 配置清单文件

<!--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" />