集成百度推送
Posted 劳猿外
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集成百度推送相关的知识,希望对你有一定的参考价值。
查看百度官方文档,下载好最新的sdk解压后,按要求放到项目中来,,的jar包还要右键 add lib,然后开始往manifest里面添加权限和服务等,
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.administrator.wisdomkiosks"> <!-- Push service 运行需要的权限 --> <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.RECEIVE_BOOT_COMPLETED"/> <uses-permission android:name="android.permission.WRITE_SETTINGS"/> <uses-permission android:name="android.permission.VIBRATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <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.ACCESS_DOWNLOAD_MANAGER"/> <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/> <uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/> <!-- 适配Android N系统必需的ContentProvider写权限声明,写权限包含应用包名--> <uses-permission android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.example.administrator.wisdomkiosks"/> <permission android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.example.administrator.wisdomkiosks" android:protectionLevel="signature"> </permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.AppCompat.NoActionBar"> <!-- 在百度开发者中心查询应用的API Key --> <meta-data android:name="api_key" android:value="3kE3q1OCNpvRepRaCnrR0A3Q"/> <!-- push service start --> <!-- 用于接收系统消息以保证PushService正常运行 --> <receiver android:name="com.baidu.android.pushservice.PushServiceReceiver" android:process=":bdservice_v1"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> <action android:name="com.baidu.android.pushservice.action.notification.SHOW"/> <action android:name="com.baidu.android.pushservice.action.media.CLICK"/> <!-- 以下四项为可选的action声明,可大大提高service存活率和消息到达速度 --> <action android:name="android.intent.action.MEDIA_MOUNTED"/> <action android:name="android.intent.action.USER_PRESENT"/> <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/> <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/> </intent-filter> </receiver> <!-- Push服务接收客户端发送的各种请求--> <receiver android:name="com.baidu.android.pushservice.RegistrationReceiver" 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"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.PACKAGE_REMOVED"/> <data android:scheme="package"/> </intent-filter> </receiver> <service android:name="com.baidu.android.pushservice.PushService" android:exported="true" 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 N系统必需的ContentProvider声明,写权限包含应用包名--> <provider android:name="com.baidu.android.pushservice.PushInfoProvider" android:authorities="com.example.administrator.wisdomkiosks.bdpush" android:exported="true" android:protectionLevel="signature" android:writePermission="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.example.administrator.wisdomkiosks"/> <!-- push结束 --> <!-- 此处Receiver名字修改为当前包名路径 --> <receiver android:name="com.example.administrator.wisdomkiosks.MyPushReceiver"> <intent-filter> <action android:name="com.baidu.android.pushservice.action.notification.SHOW"/> <!-- 接收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> <activity android:name="com.example.administrator.wisdomkiosks.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest>
注意除了权限以外,其他所有的服务等都要放到application标签里面去才可以。
自己新建 MyPushReceiverjicheng继承PushMessageReceiver,并重写父类所有方法 ,用来收云推送回调信息和推送到达信息。
到此,继承基本完成,运行项目,在消息中
看到这样的信息就是成功了,可以去试试做推送了。
以上是关于集成百度推送的主要内容,如果未能解决你的问题,请参考以下文章