使用【百度云推送】第三方SDK实现推送功能具体解释

使用【百度云推送】第三方SDK实现推送功能具体解释

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

之前介绍过怎样使用shareSDK实现新浪微博分享功能,今天介绍怎样使用百度云推送SDK实现Android手机后台推送功能。

执行效果例如以下

使用【百度云推送】第三方SDK实现推送功能具体解释

第一步,假设使用百度的SDK,当然要先成为百度的开发人员啦,这个就不详述了。成为开发人员之后,我们要建立一个应用,例如以下图所看到的

使用【百度云推送】第三方SDK实现推送功能具体解释


第二步,创建好应用之后,我们点击开方者服务管理,进入project管理页面,然后点击左側云推送,进入云推送功能页面,详细例如以下图

使用【百度云推送】第三方SDK实现推送功能具体解释


进入云推送具体页面之后,我们点击推送设置,设置好我们的应用的包名,然后点击高速实例,将系统给我们产生的演示样例代码下载下来

使用【百度云推送】第三方SDK实现推送功能具体解释

下载实例代码

使用【百度云推送】第三方SDK实现推送功能具体解释


第三步,将实例代码导入Eclipse,開始准备整合。

实例代码结构例如以下

使用【百度云推送】第三方SDK实现推送功能具体解释


经过整合之后,我们的Demo代码例如以下

使用【百度云推送】第三方SDK实现推送功能具体解释


主要有这么几个注意点:

1.MainActivity中代码例如以下

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initWithApiKey();
	}

	// 无账号初始化,用api key绑定
	private void initWithApiKey() {
		PushManager.startWork(getApplicationContext(),
				PushConstants.LOGIN_TYPE_API_KEY,
				"FKkvaMToo1wkeIFEcH7udatc");
	}

}

在主界面要进行api key的绑定,“FKkvaMToo1wkeIFEcH7udatc”这一串数值是应用的api key,在以下这个地方能够获取

使用【百度云推送】第三方SDK实现推送功能具体解释

2.在MyApplication中,我们须要自己定义Application,并依照以下实现(不光有这样的形式,很多其它信息还是看百度SDK的说明文档,说得非常具体)

public class MyApplication extends FrontiaApplication {

	@Override
	public void onCreate() {
		super.onCreate();
	}

}

自己定义Application之后,我们须要在清单文件里进行设置

<application
        android:name="com.example.baidupush.MyApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >


3.MyPushMessageReceiver这个类是用来接收server发送来的请求的,我这里直接把实例代码中的拷贝了过来,详细功能实现还须要自己改动

4.Utils这个类不是关键代码,能够无视

5.必须把libs目录以下的资源包拷过来

6.假设要实现富媒体推送,还须要把资源图片和布局也拷贝过来

7.清单文件配置非常重要,以下是配置代码和说明

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.baidupush"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19" />

    <!-- 推送权限,必须加 -->
    <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" />

    <application
        android:name="com.example.baidupush.MyApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.baidupush.MainActivity"
            android:launchMode="singleTask"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- push应用定义消息receiver声明 ,这是对前面MyPushMessageReceiver的注冊-->
        <receiver android:name="com.example.baidupush.MyPushMessageReceiver" >
            <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" />
                  <!-- 接收notification的点击事件 -->
                <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" >
            <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>
        <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>
        <!-- push结束 -->

    </application>

</manifest>


这样,当我们在百度的云推送后台发送推送信息的时候,client就能够收到来自我们后台的推送了。

除此之外,百度云推送另一些其它功能,比方设置点击notification之后的显示界面、响声,富文本推送,自己定义notification显示样式等等,假设想了解这些,还是下载SDK文档,文档说的非常清楚。

CSDN的上传资源网页挂掉了,先不传代码了。



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118385.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jsp填写图片的路径的两种方式

    jsp填写图片的路径的两种方式

    2021年7月18日
    60
  • 考研数学真题用谁的_蓝桥杯编程题

    考研数学真题用谁的_蓝桥杯编程题⭐️引言⭐️大家好,我是执梗,蓝桥杯的报名快接近尾声,如果有兄弟还没报名不了解比赛,缺少视频讲解和真题资源的一定要阅读一下我的这篇蓝桥全解析——蓝桥全解析。为了帮助兄弟们更好准备比赛,我特意选取了蓝桥往年真题中许多能体现出蓝桥经典题型的题目——如暴力遍历、动态规划等等。有帮助的兄弟们一定要收藏一下,后面会陆续更新。????博客首页:执梗的博客????欢迎关注????点赞????收藏⭐️留言????❤️:热爱Java学习,期待一起交流!????作者水平很有限,如果发现错误

    2022年10月4日
    2
  • centos frp内网穿透_内网穿透 无需公网ip

    centos frp内网穿透_内网穿透 无需公网ip说明Linux搭建frp实现内网穿透操作步骤安装步骤省略(下载解压拷贝到server服务器和client服务器完事)具体移步:github注意程序文件需要追加可执行权限!注意相关端口放行!服务端配置文件:frps.ini[common]bind_port=7777authentication_method=tokentoken=12345678tls_only=truekcp_bind_port=7777max_pool_count=10l

    2025年11月5日
    1
  • 有什么用_pattern和way的区别

    有什么用_pattern和way的区别开始:在利用servlet或filter进行url请求的匹配时,很关键的一点是匹配规则,但是servlet容器中的匹配规则既不是简单的通配也不是正则表达式而是有自己的规则比较容易混淆绝对路径和相对路径当浏览器发起一个url请求后,该请求发送到servlet容器的时候,容器会先将请求的url减去当前应用上下文的路径作

    2025年7月1日
    1
  • 奉劝那些想把编程学好的学弟学妹们!呕心沥血,袒露心声,掏心掏肺

    奉劝那些想把编程学好的学弟学妹们!呕心沥血,袒露心声,掏心掏肺CSDN的小伙伴们,大家好,我是沉默王二。作为CSDN的前排博主(18万+关注,有点飘了哈),我接触了太多太多想学编程、想把编程学好的人,有从别的专业转过来的,有零基础自学的,有科班出身的。他们当中的一部分人,学着学着就放弃了,或者还在放弃的路上。所以真的想掏心掏肺给大家谈一谈,在学好编程这条路上,我们该做好哪些心理准备,该怎么去学。01、很遗憾我上大学那会,学校的计算机专业刚成立两年,也就是说,我们是第二批。据说,第一批做小白鼠的学长学姐们,很多在毕业的时候都没从事计算机专业方面的工作。倒

    2022年6月5日
    33
  • constraint使用方法总结

    constraint使用方法总结

    2021年11月14日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号