android基于百度云消息推送通知集成

从一开始的完全不懂,到现在慢慢懂了点什么!查啊查~。
从我开始入手说起吧!首先可以先去官方网站看文档并且下载Demo。配置相应的apikey。我在配置Demo时就碰到问题了,没有gen目录。我查了下,把torget改成模拟器使用的版本。就会出现gen目录了,然后发现每个类都有报错,点进去看发现是所有的android包都没导入,所以要每个类都要Import导入相应的android包。这些做完后,最后在推送平台中创建的android项目应用配置选项中的apikey的那一串字母拷贝到Demo中的清单文件中,在清单文件中的最后一行有英文说明,把说明文字替换成apikey就可以运行了。
这里只是说下怎么配置运行官方的Demo。至于在推送平台注册以及申请应用项目可以到这个网址去,也就是官网 http://push.baidu.com/doc/android/api
接下来就是怎么把百度推送集成到自己项目中应用。
我就只是新建个android项目,hello world!什么都改动过。接下来就是把SDK下的libs中的jar包跟so文件拷贝到自己项目的libs文件夹内,或者直接把libs文件夹覆盖过来也行。如果有其它的jar包的话就要另外再导入了,最后是把导入的jar包 add build path 下。在自己项目中要新建个类继承PushMessageReceiver。并且实现该类的方法,在清单文件中要记得注册receiver,并且添加相应的权限。

<!-- 此处Receiver名字修改为当前包名路径 -->
<receiver android:name="com.*.*.PushTestReceiver">
    <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>

这是文档说明。另外还有其他的权限也要添加进去,没必要再做修改,当然在官方文档里也有。

<!-- 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.android.pushservice.CommandService" android:exported="true" />
<!-- push结束 -->

在主Activity中的onCreate函数中添加PushManager.startWork()方法。启动推送功能。
这里的apikey可以直接添加到PushManager.startWork()方法的第二个参数中。就可以运行了。
其实就这么简单也没多难的感觉。不过我在集成时还是有出现一些问题。查查。问问。再自己理解,一般来说都能解决掉。

你可能感兴趣的:(android,百度云)