求,怎么解决百度云极光推送1003错误101错误

最近在弄百度云推送Android端,按照官方的文档 配置,可是还是报错errorCode 10101
看官方解析10101 是因为配置或者集成错误。
于是我在一遍一遍的复制,结果还是一样10101
贴一下报错前的AndroidManifest.xml
android:name="android.permission.INTERNET" /&
android:name="android.permission.READ_PHONE_STATE" /&
android:name="android.permission.ACCESS_NETWORK_STATE" /&
android:name="android.permission.RECEIVE_BOOT_COMPLETED" /&
android:name="android.permission.WRITE_SETTINGS" /&
android:name="android.permission.VIBRATE" /&
android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
android:name="android.permission.DISABLE_KEYGUARD" /&
android:name="android.permission.ACCESS_COARSE_LOCATION" /&
android:name="android.permission.ACCESS_WIFI_STATE" /&
android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/&
android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /&
android:name="android.permission.EXPAND_STATUS_BAR" /&
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"&
android:name=".MainActivity"
android:label="@string/app_name"&
android:name="android.intent.action.MAIN" /&
android:name="android.intent.category.LAUNCHER" /&
android:name="com.baidu.android.pushservice.PushServiceReceiver"
android:process=":bdservice_v1" &
android:name="android.intent.action.BOOT_COMPLETED" /&
android:name="android.net.conn.CONNECTIVITY_CHANGE" /&
android:name="com.baidu.android.pushservice.action.notification.SHOW" /&
android:name="com.baidu.android.pushservice.action.media.CLICK" /&
android:name="android.intent.action.MEDIA_MOUNTED" /&
android:name="android.intent.action.USER_PRESENT" /&
android:name="android.intent.action.ACTION_POWER_CONNECTED" /&
android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /&
android:name="com.baidu.android.pushservice.RegistrationReceiver"
android:process=":bdservice_v1" &
android:name="com.baidu.android.pushservice.action.METHOD" /&
android:name="com.baidu.android.pushservice.action.BIND_SYNC" /&
android:name="android.intent.action.PACKAGE_REMOVED" /&
android:scheme="package" /&
android:name="com.baidu.android.pushservice.PushService" android:exported="true"
android:process=":bdservice_v1" &
android:name="com.baidu.android.pushservice.action.PUSH_SERVICE" /&
android:name="com.baidu.mandService"
android:exported="true" /&
android:name=".PushReceiver"&
android:name="com.baidu.android.pushservice.action.MESSAGE" /&
android:name="com.baidu.android.pushservice.action.RECEIVE" /&
android:name="com.baidu.android.pushservice.action.notification.CLICK" /&
添加后正常
android:name="baidu.push.permission..xxx.xxx" /&
android:name="baidu.push.permission..xxx.xxx"
android:protectionLevel="normal"&
android:name="com.baidu.android.pushservice.PushInfoProvider"
android:authorities="com.xxx.xxx.bdpush"
android:writePermission="baidu.push.permission..xxx.xxx"
android:exported="true" /&
errorCode =0 成功获取channelID
我用的是 Android5.1系统的测试机,添加的这两段都是为Android N 声明的。具体原因也不清楚。
本文已收录于以下专栏:
相关文章推荐
相信大家对于消息推送这个功能不会陌生吧,现在基本上所有的项目都会有消息推送,今天就来谈下百度消息推送,我之前基于百度云推送提供的API开发,但是遇到了很多问题,简直坑的没边了,这么大的公司...
今天在我的红米手机上测试百度云推送,官方的demo可以用,但是我自己的在绑定时总是报10101错误,我看了一下和官方demo的区别,结果要在androidmanefest.xml文件里加入这一行:
AndroidManifest.xml
android:name="api_key"
android:value="6Xp...
今天集成百度推送,老是报10101错误,文档上说是menifest配置错误,我对照了检查半天依旧没找到原因。
我下载一个DetectToolsForDeveloper检查了一下,发现PushServ...
Android百度推送使用详解
ONE Goal ,ONE Passion!
现在个项目都希望有推送功能,各种推送平台也是很多.不过用起来都是大同小异.公司项目使用的百度推送,去百度官网快速集...
现在app基本都有推送的功能,于是看了下百度云的推送,官方文档和Demo都很到位,记录下使用过程,目标是利用百度云推送最为服务器写个及时通讯的例子~当然了,这是第一篇入门~
1、第一步就是在百度开发者...
本文对Android百度消息推送的使用做总结。
使用百度的服务器网页给所有的手机程序客户端推送消息,客户端程序会收到一个通知消息。...
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)登录以解锁更多InfoQ新功能
获取更新并接收通知
给您喜爱的内容点赞
关注您喜爱的编辑与同行
966,690 十月 独立访问用户
语言 & 开发
架构 & 设计
文化 & 方法
您目前处于:
百度云 在InfoQ上的内容
演讲所属&百度云
语言 & 开发
89 他的粉丝
0&他的粉丝
语言 & 开发
89 他的粉丝
0&他的粉丝
2&他的粉丝
1&他的粉丝
0&他的粉丝
施聪 魏利开
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
查看所有演讲
新闻所属&百度云
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
0&他的粉丝
查看所有新闻
架构 & 设计
文化 & 方法
<及所有内容,版权所有 &#169;
C4Media Inc.
服务器由 提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司
京ICP备号-7
找回密码....
InfoQ账号使用的E-mail
关注你最喜爱的话题和作者
快速浏览网站内你所感兴趣话题的精选内容。
内容自由定制
选择想要阅读的主题和喜爱的作者定制自己的新闻源。
设置通知机制以获取内容更新对您而言是否重要
注意:如果要修改您的邮箱,我们将会发送确认邮件到您原来的邮箱。
使用现有的公司名称
修改公司名称为:
公司性质:
使用现有的公司性质
修改公司性质为:
使用现有的公司规模
修改公司规模为:
使用现在的国家
使用现在的省份
Subscribe to our newsletter?
Subscribe to our industry email notices?
我们发现您在使用ad blocker。
我们理解您使用ad blocker的初衷,但为了保证InfoQ能够继续以免费方式为您服务,我们需要您的支持。InfoQ绝不会在未经您许可的情况下将您的数据提供给第三方。我们仅将其用于向读者发送相关广告内容。请您将InfoQ添加至白名单,感谢您的理解与支持。转载请标明出处:现在app基本都有推送的功能,于是看了下百度云的推送,官方文档和Demo都很到位,记录下使用过程,目标是利用百度云推送最为服务器写个及时通讯的例子~当然了,这是第一篇入门~1、第一步就是在百度开发者服务管理中创建项目,然后拿到API key , Secret K这个过程就不多说了,上官网直接申请就行,不复杂。2、下载云推送的客户端SDK,SDK的压缩文件中包含一个例子代码,一个用户手册,和所需的libs和资源等(其实直接看用户手册和Demo基本就没问题了)。3、准备工作结束,接下来,我们就直接开始新建项目测试a、新建一个项目,然后把SDK中的libs中的jar和so文件夹拷贝到新建的项目中去b、将manifest中的application的name设置为:com.baidu.frontia.FrontiaApplication
&application
android:name=&com.baidu.frontia.FrontiaApplication&
android:allowBackup=&true&
android:icon=&@drawable/ic_launcher&
android:label=&@string/app_name&
android:theme=&@style/AppTheme& &如果你的项目需要自定义Application,请参考用户手册中的相关配置。c、添加权限 &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& /&d、添加两个receiver和一个Service(注释标明了用处) &!-- push service start --&
&!-- 用于接收系统消息以保证PushService正常运行 --&
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& /&
&/intent-filter&
&/receiver&
&!-- Push服务接收客户端发送的各种请求 --&
&!-- 注意:RegistrationReceiver 在2.1.1及之前版本有拼写失误,为RegistratonReceiver ,用新版本SDK时请更改为如下代码 --&
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&
&!-- Push 服务 --&
&!-- 注意:在4.0 (包含)之后的版本需加上如下所示的intent-filter action --&
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&
&!-- push service end --&e、我们需要自己实现一个Receiver,来接收Push消息、接口调用回调以及通知点击事件。 &receiver android:name=&com.example.zhy_baiduyun_tuisong01.receiver.MyPushMessageReceiver& &
&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&代码:package com.example.zhy_baiduyun_tuisong01.
import java.util.L
import org.json.JSONE
import org.json.JSONO
import android.content.C
import android.content.I
import android.text.TextU
import android.util.L
import com.baidu.frontia.api.FrontiaPushMessageR
import com.example.zhy_baiduyun_tuisong01.MainA
import com.example.zhy_baiduyun_tuisong01.util.PreU
* Push消息处理receiver。请编写您需要的回调函数, 一般来说: onBind是必须的,用来处理startWork返回值;
* onMessage用来接收透传消息; onSetTags、onDelTags、onListTags是tag相关操作的回调;
* onNotificationClicked在通知被点击时回调; onUnbind是stopWork接口的返回值回调
* 返回值中的errorCode,解释如下:
0 - Success
10001 - Network Problem
30600 - Internal Server Error
30601 - Method Not Allowed
30602 - Request Params Not Valid
30603 - Authentication Failed
30604 - Quota Use Up Payment Required
30605 - Data Required Not Found
30606 - Request Time Expires Timeout
30607 - Channel Token Timeout
30608 - Bind Relation Not Found
30609 - Bind Number Too Many
* 当您遇到以上返回错误时,如果解释不了您的问题,请用同一请求的返回值requestId和errorCode联系我们追查问题。
public class MyPushMessageReceiver extends FrontiaPushMessageReceiver {
/** TAG to Log */
public static final String TAG = MyPushMessageReceiver.class
.getSimpleName();
* 调用PushManager.startWork后,sdk将对push
* server发起绑定请求,这个过程是异步的。绑定请求的结果通过onBind返回。 如果您需要用单播推送,需要把这里获取的channel
* id和user id上传到应用server中,再调用server接口用channel id和user id给单个手机或者用户推送。
* @param context
BroadcastReceiver的执行Context
* @param errorCode
绑定接口返回值,0 - 成功
* @param appid
应用id。errorCode非0时为null
* @param userId
应用user id。errorCode非0时为null
* @param channelId
应用channel id。errorCode非0时为null
* @param requestId
向服务端发起的请求id。在追查问题时有用;
* @return none
public void onBind(Context context, int errorCode, String appid,
String userId, String channelId, String requestId) {
String responseString = &onBind errorCode=& + errorCode + & appid=&
+ appid + & userId=& + userId + & channelId=& + channelId
+ & requestId=& + requestId;
Log.e(TAG, responseString);
// 绑定成功,设置已绑定flag,可以有效的减少不必要的绑定请求
if (errorCode == 0) {
PreUtils.bind(context);
// Demo更新界面展示代码,应用请在这里加入自己的处理逻辑
updateContent(context, responseString);
* 接收透传消息的函数。
* @param context
* @param message
推送的消息
* @param customContentString
自定义内容,为空或者json字符串
public void onMessage(Context context, String message,
String customContentString) {
String messageString = &透传消息 message=\&& + message
+ &\& customContentString=& + customContentS
Log.e(TAG, messageString);
// 自定义内容获取方式,mykey和myvalue对应透传消息推送时自定义内容中设置的键和值
if (!TextUtils.isEmpty(customContentString)) {
JSONObject customJson =
customJson = new JSONObject(customContentString);
String myvalue =
if (customJson.isNull(&mykey&)) {
myvalue = customJson.getString(&mykey&);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
// Demo更新界面展示代码,应用请在这里加入自己的处理逻辑
updateContent(context, messageString);
* 接收通知点击的函数。注:推送通知被用户点击前,应用无法通过接口获取通知的内容。
* @param context
* @param title
推送的通知的标题
* @param description
推送的通知的描述
* @param customContentString
自定义内容,为空或者json字符串
public void onNotificationClicked(Context context, String title,
String description, String customContentString) {
String notifyString = &通知点击 title=\&& + title + &\& description=\&&
+ description + &\& customContent=& + customContentS
Log.e(TAG, notifyString);
// 自定义内容获取方式,mykey和myvalue对应通知推送时自定义内容中设置的键和值
if (!TextUtils.isEmpty(customContentString)) {
JSONObject customJson =
customJson = new JSONObject(customContentString);
String myvalue =
if (customJson.isNull(&mykey&)) {
myvalue = customJson.getString(&mykey&);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
// Demo更新界面展示代码,应用请在这里加入自己的处理逻辑
updateContent(context, notifyString);
* setTags() 的回调函数。
* @param context
* @param errorCode
错误码。0表示某些tag已经设置成功;非0表示所有tag的设置均失败。
* @param successTags
设置成功的tag
* @param failTags
设置失败的tag
* @param requestId
分配给对云推送的请求的id
public void onSetTags(Context context, int errorCode,
List&String& sucessTags, List&String& failTags, String requestId) {
String responseString = &onSetTags errorCode=& + errorCode
+ & sucessTags=& + sucessTags + & failTags=& + failTags
+ & requestId=& + requestId;
Log.e(TAG, responseString);
// Demo更新界面展示代码,应用请在这里加入自己的处理逻辑
updateContent(context, responseString);
* delTags() 的回调函数。
* @param context
* @param errorCode
错误码。0表示某些tag已经删除成功;非0表示所有tag均删除失败。
* @param successTags
成功删除的tag
* @param failTags
删除失败的tag
* @param requestId
分配给对云推送的请求的id
public void onDelTags(Context context, int errorCode,
List&String& sucessTags, List&String& failTags, String requestId) {
String responseString = &onDelTags errorCode=& + errorCode
+ & sucessTags=& + sucessTags + & failTags=& + failTags
+ & requestId=& + requestId;
Log.e(TAG, responseString);
// Demo更新界面展示代码,应用请在这里加入自己的处理逻辑
updateContent(context, responseString);
* listTags() 的回调函数。
* @param context
* @param errorCode
错误码。0表示列举tag成功;非0表示失败。
* @param tags
当前应用设置的所有tag。
* @param requestId
分配给对云推送的请求的id
public void onListTags(Context context, int errorCode, List&String& tags,
String requestId) {
String responseString = &onListTags errorCode=& + errorCode + & tags=&
Log.e(TAG, responseString);
// Demo更新界面展示代码,应用请在这里加入自己的处理逻辑
updateContent(context, responseString);
* PushManager.stopWork() 的回调函数。
* @param context
* @param errorCode
错误码。0表示从云推送解绑定成功;非0表示失败。
* @param requestId
分配给对云推送的请求的id
public void onUnbind(Context context, int errorCode, String requestId) {
String responseString = &onUnbind errorCode=& + errorCode
+ & requestId = & + requestId;
Log.e(TAG, responseString);
// 解绑定成功,设置未绑定flag,
if (errorCode == 0) {
PreUtils.unbind(context);
// Demo更新界面展示代码,应用请在这里加入自己的处理逻辑
updateContent(context, responseString);
private void updateContent(Context context, String content) {
Log.e(TAG, &updateContent&);
//String logText = && + Utils.logStringC
if (!logText.equals(&&)) {
logText += &\n&;
SimpleDateFormat sDateFormat = new SimpleDateFormat(&HH-mm-ss&);
logText += sDateFormat.format(new Date()) + &: &;
logText +=
//Utils.logStringCache = logT
Intent intent = new Intent();
intent.putExtra(&result&, content);
intent.setClass(context.getApplicationContext(), MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.getApplicationContext().startActivity(intent);
代码是官方Demo的代码,注释特别详细,做了一点修改,每次回调的结果,我会让显示到主界面上。主Actvity:package com.example.zhy_baiduyun_tuisong01;
import android.app.A
import android.content.I
import android.os.B
import android.util.L
import android.widget.TextV
import com.baidu.android.pushservice.PushC
import com.baidu.android.pushservice.PushM
import com.example.zhy_baiduyun_tuisong01.util.PreU
public class MainActivity extends Activity
private TextView mTextV
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
autoBindBaiduYunTuiSong();
private void initView()
mTextView = (TextView) findViewById(R.id.id_textview);
protected void onNewIntent(Intent intent)
String result = intent.getStringExtra(&result&);
if (result != null)
mTextView.setText(result);
// super.onNewIntent(intent);
* 如果没有绑定百度云,则绑定,并记录在属性文件中
private void autoBindBaiduYunTuiSong()
if (!PreUtils.isBind(getApplicationContext()))
PushManager.startWork(getApplicationContext(),
PushConstants.LOGIN_TYPE_API_KEY,
&TVkKGesssSDs5q7AamLGnNCs&);
最终的测试:1、应用安装后,如果绑定成功,主界面:然后在管理控制台开始分别发送通知和消息:2、当发送通知并点击通知:3、当发送消息:好了,都是最基本的功能,没什么技术含量就是需要点耐心,下面贴上源码,使用源码请把MainActivity里面的KEY设置成自己申请的KEY。
本文已收录于以下专栏:
相关文章推荐
版本:1.0日期:版权:(C) 2014 kince 转载注明出处
何为Application,有何用途?Google官方文档是这样说的:维护全局应用程序的状态,使用的时候继承于它创建...
版权声明:本文为博主原创文章,未经博主允许不得转载。
这是我第一个使用的推送服务,百度云推送
废话不多说,开始上内容
功能实现过程:
1. 到百度云推送官网下载最新版本的SDK
http://push...
1、自定义一个 BroadcastReceiver 类继承PushMessageReceiver 类,实现onNotificationMessageArrived和onNotificationMess...
Android百度推送使用详解
ONE Goal ,ONE Passion!
现在个项目都希望有推送功能,各种推送平台也是很多.不过用起来都是大同小异.公司项目使用的百度推送,去百度官网快速集...
1.首先在百度云推送网站上下载Android SDK(客户端)和Java SDK(服务端)
2.根据开发文档配置Android客户端
(1)在百度云推送页面创建应用,创建成功之后会生成API_KE...
相信大家对于消息推送这个功能不会陌生吧,现在基本上所有的项目都会有消息推送,今天就来谈下百度消息推送,我之前基于百度云推送提供的API开发,但是遇到了很多问题,简直坑的没边了,这么大的公司...
1.百度云推送ID:
channelId:
此字段对应设备识别号,所以同一设备使用多个同一开发者appkey的app时,channelId一致。
登录百度账号绑定则使用百度账号对应...
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)还没好好感受年轻
1.资源链接
&& 百度官方文档:/doc/android/api;
&& 百度推送SDK下载:/sdk/push_client_sdk_for_android;
2.创建应用,在这里就不做详细说明,保存API KEY后面会使用到
&& ①目前官方建议使用Android SDK API level 21以下的版本编译工程,官方给出的解释是:在Android5.0的机器上图标会变成白色方块
&& ② 如下图,将libs下的文件复制到自己对应的工程目录下
& ③特别说明:工程中的X86无需复制.so文件,armeabi复制对应文件,如有armeabi_v7,则将armeabi文件中的.so文件复制到armeabi_v7目录下一份
& ④AndroidManifest.XML文件配置(权限和声明信息请勿修改),如下
&!-- 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.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" /&
&!-- 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.mandService"
android:exported="true" /&
&!-- push结束 --&
⑤混淆说明:
& 如果app需要混淆,在混淆文件下(android一般为proguard-project.txt或者 proguard-cfg)中添加(pushservice-VERSION.jar为集成的jar包名字,VERSION为版本名称)以下说明,以免SDK被二次混淆,无法收到消息
libraryjars libs/pushservice-VERSION.jar
-dontwarn com.baidu.**
-keep class com.baidu.**{*; }
⑥启动百度云推送:
&在主Activity的onCreate方法下添加如下信息:
PushManager.startWork(getApplicationContext(),PushConstants.LOGIN_TYPE_API_KEY,"api_key")
&注意:将api_key替换称创建应用是分配的API KEY;不允许在Application的onCreate方法里调用startWork方法
&到这里就可以可以实现我们自己的推送,当然想了解更多,请继续。
4.解释下几个概念(官方摘抄过来的):
& ①目前支持的推送类型,有三种:
通知 :创建一条通知推送。通知推送会直接出现在Android的通知栏。
透传消息:创建一条透传消息推送。透传消息会递交给应用处理,不会直接出现在通知栏。
富媒体消息:富媒体也是一种通知推送,区别在于可以配置展示的模板,使通知展示更加美观和多样化。
&&&&& 富媒体简单的说就是由图片、声音、视频等交互性信息的方式,在这里与一般通知的区别不大,可以便捷的提供个性的通知
& ②通知范围:
广播:推送给安装应用的所有设备。如果已安装了Demo客户端,可以不做其他任何设置通过发送广播来做第一次测试。
单播:推送给安装应用的某一台设备,需要填写该设备的ChannelID。如果使用Demo客户端进行测试,可以在Demo客户端界面中查看到ChannelID;如果使用自己集成AndroidSDK的应用,ChannelID的获取请参考。
标签组播:推送给打上某一个标签的一组设备。如果使用Demo客户端进行测试,可以在Demo客户端界面将设备加入到指定名称的标签组中,然后选择该名称的标签进行推送即可(如果该标签之前未使用过,请刷新页面更新控制台标签列表)每个应用最多可以定义10000个标签;每个标签对应的设备数没有限制
批量设备:批量以单播形式推送给多台设备。对少量设备,可以通过ChannelID列表的形式设置要推送到设备;对大量设备,支持通过上传一个设备ChannelID列表文件的方式来进行推送目标设定。少量设备的格式: ChannelID;ChannelID,最多10个。大量设备的格式: 每一行一个ChannelID,行末不用加分隔符,最多10000个ChannelID。
Tips: "批量设备推送" 还可以设置 分类主题, 分类主题是一个自定义的字符串(不支持中文),设置成相同分类主题的多次批量设备推送在统计展示时,可以使用分类主题来聚合展示这多次批量设备推送的到达情况。例如:每一天推送一次天气信息给10个设备,设置推送主题为"weather",然后在 推送主题统计 中可以查看weather这个主题每天的到达数量。"批量设备" 和 "标签组播" 的区别与选择:两者都是对一批用户的推送,标签组播相当于把要推送的设备列表预先存储在云端,更适用于组内设备变化不频繁的场合,或者由客户端主动发起变动(如用户主动订阅)的场合;批量设备相当于每次推送重新设置设备列表,更适合开发者每次线下重新挖掘出不同设备的场合*
标签组合:云推送目前支持2个标签之间进行交集,并集和差集的推送。
标签组合目前暂时不支持对消息到达数量的预估
地理区域推送:云推送目前支持到县级别的行政区域下设备的推送。
地理区域推送目前暂时不支持对消息到达数量的预估
兴趣精准推送:云推送基于大数据,目前支持影视,医疗,游戏等多个维度的兴趣的设备推送。
兴趣精准推送目前暂时不支持对消息到达数量的预估&&&&&&&&&&&&&&&&
&&&5.补充:
&&&& ①自定义通知格式:&&&&&&&
  官方SDK提供CustomPushNotificationBuilder, BasicPushNotificationBuilder,&setNotificationFlags, setNotificationDefaults, setStatusbarIcon,setNotificationFlags, setNotificationDefaults, setStatusbarIcon这几个类和方法以便开发者定义自己的格式,例如:
CustomPushNotificationBuilder cBuilder = new CustomPushNotificationBuilder(
resource.getIdentifier(
"notification_custom_builder", "layout", pkgName),
resource.getIdentifier("notification_icon", "id", pkgName),
resource.getIdentifier("notification_title", "id", pkgName),
resource.getIdentifier("notification_text", "id", pkgName));
cBuilder.setNotificationFlags(Notification.FLAG_AUTO_CANCEL);
cBuilder.setNotificationDefaults(Notification.DEFAULT_VIBRATE);
cBuilder.setStatusbarIcon(this.getApplicationInfo().icon);
cBuilder.setLayoutDrawable(resource.getIdentifier(
"simple_notification_icon", "drawable", pkgName));
cBuilder.setNotificationSound(Uri.withAppendedPath(
Audio.Media.INTERNAL_CONTENT_URI, "6").toString());
// 推送高级设置,通知栏样式设置为下面的ID
PushManager.setNotificationBuilder(this, 1, cBuilder);
&②标签设置和删除:
public static void setTags(Context context, List tags);
//设置标签
public static void delTags(Context context, List tags); //删除标签 PushManager的静态方法
& ③开启地理位置推送:
// Push: 如果想基于地理位置推送,可以打开支持地理位置的推送的开关
PushManager.enableLbs(getApplicationContext());
public static void disableLbs(Context context);
& ④PushMessageReceiver类:处理消息
&&&& 一、onBind方法是必须的,用来处理startWork返回值;
&& & 二、onMessage用来接收透传消息;
&&&& 三、onSetTags、onDelTags、onListTags是tag相关操作的回调;
&&&&&四、onNotificationClicked在通知被点击时回调;
 &&五、&onUnbind是stopWork接口的返回值回调
& ⑤、错误码:
error_code描述
当前网络不可用,请检查网络
服务不可用,连接server失败
服务不可用,503错误
应用集成方式错误,请检查各项声明和权限
服务内部错误
非法函数请求,请检查您的请求内容
请求参数错误,请检查您的参数
非法构造请求,服务端验证失败
请求的数据在服务端不存在
绑定关系不存在或未找到
一个百度账户绑定设备超出个数限制(多台设备登录同一个百度账户)
百度账户绑定应用时被禁止,需要白名单授权
&今天就介绍到这里,欢迎大家交流和指正。&&&&&&&&&&&原文链接:
阅读排行榜

我要回帖

更多关于 极光推送错误码1011 的文章

 

随机推荐