关于“个推”消息推送遇到的问题整理

首先放上“个推”的经典流程图,图画的简单,但真明白还真不简单~java

  1. 作“个推”准备工做的时候先在AndroidManifest.xml里面添加各类权限啦,推送啦之类的东西,这些官网上都有android

    AndroidManifest.xml中服务器

 <meta-data android:name="PUSH_APPID" android:value="你的appid"/>
  <!--替换为第三方应用的APPID-->
  <meta-data android:name="PUSH_APPKEY" android:value="你的appkey"/>
  <!--替换为第三方应用的APPKEY-->
  <meta-data android:name="PUSH_APPSECRET" android:value="你的appsecret"/>
  <meta-data android:name="PUSH_GROUPID" android:value="" />
  <!-- 提交clientID给服务器端 -->
  <receiver
      android:name="com.android.customer.apush.APushSdkMsgReceiver"
       android:exported="false" >
        <intent-filter>
            <action android:name="com.igexin.sdk.action.你的appid" />
         </intent-filter>
 </receiver>
 <!--配置SDK核心服务-->
  <service
      android:name="com.igexin.sdk.PushService"
      android:exported="true"
      android:label="NotificationCenter"
      android:process=":pushservice">
  </service>
  <receiver 
      android:name="com.igexin.sdk.PushReceiver">
      <intent-filter>
          <action android:name="android.intent.action.BOOT_COMPLETED"/>
          <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
          <action android:name="android.intent.action.USER_PRESENT"/>
          <action android:name="com.igexin.sdk.action.refreshls"/>
      </intent-filter>
  </receiver>
          
  <receiver
         android:name="com.igexin.sdk.PushManagerReceiver"
         android:exported="false" >
         <intent-filter>
             <action android:name="com.igexin.sdk.action.pushmanager" />
         </intent-filter>
  </receiver>
  <activity
      android:name="com.igexin.sdk.PushActivity"
      android:excludeFromRecents="true"
      android:exported="false"
      android:process=":pushservice"
      android:taskAffinity="com.igexin.sdk.PushActivityTask"
      android:theme="@android:style/Theme.Translucent.NoTitleBar">
  </activity>  
<!-- 配置弹框activity -->
 <activity android:name="com.igexin.getuiext.activity.GetuiExtActivity"
       android:configChanges="orientation|keyboard|keyboardHidden"
       android:excludeFromRecents="true"
       android:exported="false"
       android:process=":pushservice"
       android:taskAffinity="android.task.myServicetask"
       android:theme="@android:style/Theme.Translucent.NoTitleBar" />
  <service
       android:name="com.igexin.getuiext.service.GetuiExtService"
       android:exported="false"
       android:process=":pushservice" />
 <receiver
       android:name="com.igexin.getuiext.service.PayloadReceiver"
       android:exported="false" >
       <intent-filter>
           <!-- 这个com.igexin.sdk.action.7fjUl2Z3LH6xYy7NQK4ni4固定,不能修改 -->
           <action android:name="com.igexin.sdk.action.7fjUl2Z3LH6xYy7NQK4ni4" />
           <!-- android:name="com.igexin.sdk.action.第三方的appId" -->
            <action android:name="com.igexin.sdk.action.你的appid" />
         </intent-filter>
</receiver>
 <service
     android:name="com.igexin.download.DownloadService"
     android:process=":pushservice" />
<receiver android:name="com.igexin.download.DownloadReceiver" >
    <intent-filter>
       <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
     </intent-filter>
</receiver>
<provider
    android:name="com.igexin.download.DownloadProvider"
    android:authorities="downloads.com.android.customer"
    android:process=":pushservice" />
<!-- 如下为权限部分 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="getui.permission.GetuiService.第三方包名" />
    <uses-permission android:name="android.permission.GET_TASKS"/>
    <!-- 自定义权限 -->
    <permission
        android:name="getui.permission.GetuiService.第三方包名"
        android:protectionLevel="normal" >
    </permission>

在这个总配置文件里面有这部分,这个ApushSdkMsgReceiver.java文件是提交clientID给服务端的,同时传入到Activity.java里面app

<!-- 提交clientID给服务器端 -->
  <receiver
      android:name="com.android.customer.apush.APushSdkMsgReceiver"
       android:exported="false" >
        <intent-filter>
            <action android:name="com.igexin.sdk.action.你的appid" />
         </intent-filter>
 </receiver>

而后就开始把<UID,ClientID>保存到服务端上,而后链接既往服务端发送消息,而后作接收服务器返回值操做。ide

这里多谢谢个推交流群,否则我这问题虽小,但还不知什么时候解决ui

在安卓手机上,Clientid只会绑定一次appid,一旦绑定成功了,就不会改变,若是想改变的话就须要把应用卸载了,而后删除SD卡的libs文件,这时会生成一个新的Clientid~.net

我出现的问题就是服务端的appid和我程序里面的clientid不一致,而后推送消息就没反应。code

但愿我出现的问题能够给你们当个建议~orm

相关文章
相关标签/搜索