安卓学习笔记4——推送服务初体验

一. 引子

推送服务我们都不陌生,每天你手机上的应用都会推送或多或少的信息到你的手机。这些推送信息有些是由应用开发商自己提供的,而有些则是通过第三方的推送服务上提供的,比如今天我们体验的“个推”推送平台。点击打开链接


二.开发步骤

个推提供了详细的技术文档,所以学习和使用起来都比较简单。下面我们就跟着技术文档的教程一步一步来做吧。

步骤一:注册个推账号。不说了,大家都懂的。

步骤二:登录账号,新建应用。以下界面就是登记应用界面,可以填上应用的一些信息。



登记成功后我们可以在首页中看到以下的一些信息,而这些信息是我们开发app所必要的。


步骤三: 开发自己的个推应用

在开发应用中又包括了几个步骤。

1.从个推官网下载sdk。 

2.新建工程,并向libs文件夹中复制黏贴下载的jar包。在build path中导入这些jar包。

3.导入必要库

import com.igexin.sdk.Consts;
import com.igexin.slavesdk.MessageManager;

4. 初始化MessageManage。一般在activity的onCreate方法中执行。

	MessageManager.getInstance().initialize(this.getApplicationContext());

5.下面是在mainfest中的配置

增加权限

	<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.WAKE_LOCK" />
	<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
	<uses-permission android:name="android.permission.VIBRATE" />
	<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
	<uses-permission android:name="getui.permission.GetuiService" />
	<!-- 可选权限 -->
	<uses-permission android:name="android.permission.CALL_PHONE" />
	<!-- 自定义权限 -->
	<permission
    android:name="getui.permission.GetuiService"
    android:protectionLevel="normal" >
	</permission>

在application标签中注册必要信息, 其中有些信息需要自行修改。注意中文注释

<!-- 个推SDK配置开始 -->

         <!-- 配置的第三方参数属性 -->

         <meta-data android:name="appid" android:value="你应用的appid" />

         <meta-data android:name="appsecret" android:value="你应用的appsecret" />

         <meta-data android:name="appkey" android:value="你应用的appkey" />

         <meta-data android:name="groupid" android:value="" />

         <activity android:name="com.igexin.sdk.SdkActivity"

android:process=":pushservice"

              android:theme="@android:style/Theme.Translucent.NoTitleBar"

              android:taskAffinity="android.task.GexinSdkActivityTask"

              android:excludeFromRecents="true"

              android:exported="false">

              <intent-filter>

                   <action android:name="com.igexin.action.popupact.com.igexin.demo" />

                   <!--
			这里需要改
                       com.igexin.action.popupact.第三方的包名

                   -->

                   <category android:name="android.intent.category.DEFAULT" />

              </intent-filter>

         </activity>

<!-- 配置弹框activity -->

<activity android:name="com.igexin.getuiext.activity.GetuiExtActivity"

            android:process=":pushservice"

            android:configChanges="orientation|keyboard|keyboardHidden"

android:excludeFromRecents="true"

            android:taskAffinity="android.task.myServicetask"

            android:theme="@android:style/Theme.Translucent.NoTitleBar"

            android:exported="false" />

         <service android:label="NotifyCenter"

android:name="com.igexin.sdk.SdkMainService"

android:process=":pushservice"

android:exported="false">

         </service>

         <service android:label="NotifyCenterAIDL"

android:name="com.igexin.sdk.coordinator.SdkMsgService"

android:process=":pushservice"

android:exported="true">

         </service>

         <!-- 个推download模块配置-->

         <service android:name="sdk.download.DownloadService"

              android:process=":pushservice" />

         <receiver

              android:exported="false" android:name="sdk.download.DownloadReceiver">

              <intent-filter>

                   <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

              </intent-filter>

         </receiver>

         <provider android:authorities="sdk.download.com.igexin.demo"<!--这里需要改-->

              android:process=":pushservice"

              android:name="sdk.download.DownloadProvider"/>

              <!-- android:authorities="sdk.download.第三方包名" -->

<!-- GetuiExt模块配置 -->

<service android:name="com.igexin.getuiext.service.GetuiExtService"

     android:exported="false"

     android:process=":pushservice" />

<receiver android:name="com.igexin.getuiext.service.PayloadReceiver"

android:exported="false" >

         <intent-filter>

              <!-- 这个com.igexin.sdk.action.7fjUl2Z3LH6xYy7NQK4ni4固定,不能修改  -->

              <action android:name="com.igexin.sdk.action.7fjUl2Z3LH6xYy7NQK4ni4" />

              <!-- android:name="com.igexin.sdk.action.第三方的appId" -->      <!--这里需要改-->

              <action android:name="com.igexin.sdk.action.b03c5cfef65ed30108f0a3fd82c3f6b4" />

         </intent-filter>

</receiver>

<service android:name="com.igexin.download.DownloadService"

     android:exported="false"

         android:process=":pushservice" />

     <provider android:authorities="increment.download.com.igexin.demo"

          android:process=":pushservice"

         android:exported="false"

          android:name="com.igexin.download.DownloadProvider" />

<receiver

         android:exported="false" android:name="com.igexin.download.DownloadReceiver">

         <intent-filter>

              <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

         </intent-filter>

     </receiver>

<receiver android:name="com.igexin.sdk.SdkReceiver">

              <intent-filter>

                   <action android:name="android.intent.action.BOOT_COMPLETED" />

                   <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

                   <action android:name="android.intent.action.USER_PRESENT" />

              </intent-filter>

         </receiver>

         <receiver android:name="com.igexin.sdk.coordinator.NotificationCenterAIDLReceiver">

              <intent-filter>

                   <action android:name="com.igexin.sdk.action.refreshls" />

              </intent-filter>

         </receiver>

         <!-- =========================================================================== -->

步骤四:

到这里我们应用的配置就ok了,可以尝试下发送信息。看手机是否接收到信息。



三.总结

以上就是使用个推推送服务开发的基本步骤。但通过这样我们手机只是接收到消息并放到消息栏中,我们的应用是没有对这些信息进行处理的,如果要推送我们应用能够接受处理的信息就需要使用透传消息。这部分在下一篇博客中讲。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值