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

来源:互联网 发布:js 设置data属性 编辑:程序博客网 时间:2024/06/06 00:48

一. 引子

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


二.开发步骤

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

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

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



登记成功后我们可以在首页中看到以下的一些信息,而这些信息是我们开发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 0
原创粉丝点击