Просмотр исходного кода

百度推送升级 遇到问题

Arison 9 лет назад
Родитель
Сommit
96c7392198

+ 68 - 34
WeiChat/src/main/AndroidManifest.xml

@@ -73,6 +73,18 @@
     <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />
     <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
     <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+    <!-- 富媒体需要声明的权限 -->
+    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
+
+
+    <!-- 适配Android N系统必需的ContentProvider写权限声明,写权限包含应用包名-->
+    <!--<uses-permission android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.baidu.push.example" />-->
+    <!--<permission-->
+        <!--android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.baidu.push.example"-->
+        <!--android:protectionLevel="normal">-->
+    <!--</permission>-->
 
     <!-- 百度自动更新 -->
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
@@ -344,7 +356,9 @@
                 <action android:name="android.intent.action.SCREEN_ON" />
             </intent-filter>
         </receiver>
-
+        <!-- oA模块提醒功能本地推送 -->
+        <receiver android:name=".ui.erp.util.alarm.AlarmReceiver" />
+        
         <activity
             android:name=".ui.message.InstantMessageActivity"
             android:launchMode="singleTask"
@@ -361,11 +375,38 @@
             android:name="com.ipaulpro.afilechooser.FileReceiverActivity"
             android:screenOrientation="portrait" />
 
-        <!-- push service start -->
+        <!-- baidu  push service start -->
         <!-- 用于接收系统消息以保证PushService正常运行 -->
+        <!-- push富媒体,使用富媒体推送必须声明 -->
+        <activity
+            android:name="com.baidu.android.pushservice.richmedia.MediaViewActivity"
+            android:configChanges="orientation|keyboardHidden"
+            android:label="MediaViewActivity" >
+        </activity>
+        <activity
+            android:name="com.baidu.android.pushservice.richmedia.MediaListActivity"
+            android:configChanges="orientation|keyboardHidden"
+            android:label="MediaListActivity"
+            android:launchMode="singleTask" >
+        </activity>
+        <!-- push富媒体结束 -->
+
+        <!-- push应用定义消息receiver声明 -->
+        <receiver android:name=".ui.PushNetMessageReceiver" >
+            <intent-filter>
+
+                <!-- 接收push消息 -->
+                <action android:name="com.baidu.android.pushservice.action.MESSAGE" />
+                <!-- 接收bind,unbind,fetch,delete等反馈消息 -->
+                <action android:name="com.baidu.android.pushservice.action.RECEIVE" />
+                <action android:name="com.baidu.android.pushservice.action.notification.CLICK" />
+            </intent-filter>
+        </receiver>
+
+        <!-- push必须的receviver和service声明 -->
         <receiver
             android:name="com.baidu.android.pushservice.PushServiceReceiver"
-            android:process=":bdservice_v1">
+            android:process=":bdservice_v1" >
             <intent-filter>
                 <action android:name="android.intent.action.BOOT_COMPLETED" />
                 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
@@ -378,12 +419,9 @@
                 <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
             </intent-filter>
         </receiver>
-        <!-- oA模块提醒功能本地推送 -->
-        <receiver android:name=".ui.erp.util.alarm.AlarmReceiver" />
-        <!-- Push服务接收客户端发送的各种请求 -->
         <receiver
             android:name="com.baidu.android.pushservice.RegistrationReceiver"
-            android:process=":bdservice_v1">
+            android:process=":bdservice_v1" >
             <intent-filter>
                 <action android:name="com.baidu.android.pushservice.action.METHOD" />
                 <action android:name="com.baidu.android.pushservice.action.BIND_SYNC" />
@@ -394,39 +432,32 @@
                 <data android:scheme="package" />
             </intent-filter>
         </receiver>
-        <!--
-        百度推送
-        android:process=":bdservice_v1"
-        -->
+
+
         <service
             android:name="com.baidu.android.pushservice.PushService"
             android:exported="true"
-            android:persistent="true"
-            android:process=":bdservice_v1">
+            android:process=":bdservice_v1" >
             <intent-filter>
                 <action android:name="com.baidu.android.pushservice.action.PUSH_SERVICE" />
             </intent-filter>
         </service>
-        <!-- 4.4版本新增的CommandService声明,提升小米和魅族手机上的实际推送到达率 -->
         <service
             android:name="com.baidu.android.pushservice.CommandService"
-            android:exported="true"
-            android:persistent="true" />
-        <!-- push结束 -->
+            android:exported="true" />
 
+        <!-- 适配Android N系统必需的ContentProvider声明,写权限包含应用包名-->
+        <provider
+            android:name="com.baidu.android.pushservice.PushInfoProvider"
+            android:authorities="com.baidu.push.example.bdpush"
+            android:writePermission="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.baidu.push.example"
+            android:protectionLevel = "signature"
+            android:exported="true" />
 
-        <!-- 此处Receiver名字修改为当前包名路径 -->
-        <receiver android:name=".ui.PushNetMessageReceiver">
-            <intent-filter>
-
-                <!-- 接收push消息 -->
-                <action android:name="com.baidu.android.pushservice.action.MESSAGE" />
-                <!-- 接收bind、setTags等method的返回结果 -->
-                <action android:name="com.baidu.android.pushservice.action.RECEIVE" />
-                <!-- 接收通知点击事件,和通知自定义内容 -->
-                <action android:name="com.baidu.android.pushservice.action.notification.CLICK" />
-            </intent-filter>
-        </receiver>
+        <!-- 在百度开发者中心查询应用的API Key -->
+        <meta-data
+            android:name="api_key"
+            android:value="EmEVqG9NiKchcSbkoGkiyG2F2rp8YNmf" />
 
         <!--
             <activity android:name=".ui.erp.activity.NoticeMenuActivity" >
@@ -444,16 +475,19 @@
         </activity>
 
         <!-- 百度 -->
-        <meta-data
+       <meta-data
             android:name="BDAPPID"
             android:value="7178311" />
         <meta-data
             android:name="BDAPPKEY"
             android:value="EmEVqG9NiKchcSbkoGkiyG2F2rp8YNmf" />
-        <!-- 在百度开发者中心查询应用的API Key -->
-        <meta-data
-            android:name="api_key"
-            android:value="EmEVqG9NiKchcSbkoGkiyG2F2rp8YNmf" />
+        <!--<meta-data-->
+            <!--android:name="BDAPPID"-->
+            <!--android:value="8037149" />-->
+        <!--<meta-data-->
+            <!--android:name="BDAPPKEY"-->
+            <!--android:value="GMZFDGbbchdQQXjpabX38rTlychRGnEF" />-->
+ 
         <service
             android:name="com.baidu.location.f"
             android:enabled="true"

+ 10 - 8
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java

@@ -23,6 +23,8 @@ import android.widget.TextView;
 
 import com.android.volley.Response;
 import com.android.volley.VolleyError;
+import com.baidu.android.pushservice.PushConstants;
+import com.baidu.android.pushservice.PushManager;
 import com.baidu.autoupdatesdk.BDAutoUpdateSDK;
 import com.baidu.autoupdatesdk.UICheckUpdateCallback;
 import com.xzjmyk.pm.activity.AppConfig;
@@ -401,14 +403,14 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
         Log.i("wang", "usId:" + MyApplication.getInstance().mLoginUser.getUserId());
         Log.i("wang", "usId:" +  CommonUtil.getMetaValue(this, "api_key"));
 //        //TODO 百度开始推送
-//        PushManager.startWork(getApplicationContext(), PushConstants.LOGIN_TYPE_API_KEY,
-//                CommonUtil.getMetaValue(this,"api_key"));
-//        
-//        
-//        int isPush = PreferenceUtils.getInt(MyApplication.getInstance(), MainActivity.BAIDU_PUSH);
-//        if (isPush == 0) {
-//            PushManager.stopWork(this);
-//        }
+        PushManager.startWork(getApplicationContext(), PushConstants.LOGIN_TYPE_API_KEY,
+                CommonUtil.getMetaValue(this, "api_key"));
+        
+        
+        int isPush = PreferenceUtils.getInt(MyApplication.getInstance(), MainActivity.BAIDU_PUSH);
+        if (isPush == 0) {
+            PushManager.stopWork(this);
+        }
         
         mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
         if (savedInstanceState != null) {

BIN
WeiChat/src/main/jniLibs/arm64-v8a/libbdpush_V2_7.so