zoukankan      html  css  js  c++  java
  • 百度云推送

    百度云推送步骤:
    1.首先进入百度云推送平台,登录百度账号;

    2.点击下载SDK,Android客服端Android V4.6.3版本下载;这是目前最新的版本,一般就是下载最新的版本,下载完成后;

    3.创建应用,(为了得到一个key值,因为项目工程里需要用这个key值),一个应用对应一个key值,一个key值只能被一个项目工程程序所应使用,下一步是应用配置,点击小机器人,下一步填写应用包名(这个应用包名其实就是你需要推送的项目工程程序的mainactivity的路径,如:com.bawei.jinritoutiao)点击保存,创建好后,点击操作那列里面的应用配置可以看见自己刚才创建的应用里的key值(注意:要的是API KEY 后面的key值);

    4.打开文档中心,找到客户端SDK文档下面的Android SDK文档(相当于教程);

    5.打开刚才下载好的SDK压缩包,解压后里面有一个Demo 这是人家百度给你的一个实例,可以导入到exlipce里面(导入时要选择的Android包下那个(Existing Android Code Into Workspace)),他这个小Demo里面导入会有一个类报错,找到这个类,把里面的两行代码注释掉就行了,还有去mainifext.xml里面把 <meta-data
    android:name="api_key"
    android:value="cPI2v7us5pe7tGMQTIV0nxU8" />

    那个value值是你在百度云推送里申请应用里面的key值;好了这是先运行一下人家的项目,先看看效果如何;

    6.下面是把自己的项目程序加上这个百度云推送这个功能,还是先打开刚才解压的SDK包,打开那个libs文件夹,把里面的armeabi文件夹,mips文件夹和pushserviece-4.6.2.39.jar包这三个拷到自己要运行的项目工程里面;

    7.然后在自己的项目里面开始配置了,在manifext.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.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" />

    然后在 mainactivity 的 <activity
    android:name="com.example.jinritoutiao.MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    这个类所在的activity配置下面;加入一下代码;

    <!-- 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结束 -->

    <!-- 4.6版本新增的Activity声明,提升Push后台存活率 -->
    <activity
    android:launchMode="singleInstance"
    android:name="com.baidu.android.pushservice.PushKeepAlive"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"/>


    8.在当前工程的主ativity也就是mainactivity的oncreate()方法里面第一行加上以下代码:

    PushManager.startWork(getApplicationContext(),PushConstants.LOGIN_TYPE_API_KEY,"api_key");
    把"api_key"改为你在百度云里面给自己这给项目程序申请的应用里面所对应的key值;

    9.在当前的自己这个工程里面(就在mainactivity所在的包里面创建就行)新建一个普通类,new->class,extends PushMessageReceiver 实现里面的方法就行了;

    10.再打开mainfext.xml在刚才添加的接受(receiver)权限下面(第二个receiver)下面放入以下代码:


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

    把那个name后面的YourPackageName改为你刚才创建的那个普通类的全路径名;

    右键点击当前工程,选择Run As --> Android Application,选中已连接的设备或Android虚拟机,运行该程序。如果在logcat中的回调函数中的errorCode为0,说明已经绑定成功,并返回userid和channelid,我们就可以在云控制台推送通知和透传消息到该app了。

    11.然后打开百度云推送平台,找到你这个项目所对应的应用,点击操作栏下面的应用配置进入,点击 推送下面的几个选项任意一个,就能发消息了 , 然后模拟器上运行的这个项目程序就能收到刚发的消息了。

  • 相关阅读:
    关于 Node.js: 所有PHP开发人员应该知道的5点
    HTML5网站大观:分享8个精美的 HTML5 网站案例
    一些新的 UI 图免费下载
    用HTML5/CSS3/JS开发Android/IOS应用
    Why C++ ? 王者归来
    响应式网页设计
    60款很酷的 jQuery 幻灯片演示和下载
    25 JavaScript的幻灯片用于在Web布局的精彩案例
    10个帮助你优化网站的 .htaccess 技巧
    视差滚动在网页设计中应用的21个优秀案例
  • 原文地址:https://www.cnblogs.com/zhengyanyan/p/5326744.html
Copyright © 2011-2022 走看看