教你实现简单的极光推送-Eclipse

来源:互联网 发布:钢结构cad软件 编辑:程序博客网 时间:2024/06/11 11:30

通过极光推送,我们可以主动及时地向用户发送消息,提醒,进度等。

只需要简单的SDK集成方式,我们就可以实现这一功能 :

1.打开http://https://www.jiguang.cn/app/list,注册自己的账号,选择创建应用

就可以得到自己的AppKey啦~


2.进入http://http://docs.jiguang.cn/resources/,进行SDK的下载

3.解压缩 jpush-android-release-2.x.y.zip 集成压缩包。

   复制 libs/jpush-sdk-2.x.y.jar 到工程 libs/ 目录下。

   复制 libs/(cpu-type)/libjpush2xy.so 到你的工程中存放对应cpu类型的目录下。

   复制 res/ 中drawable-hdpi, layout, values文件夹中的资源文件到你的工程中 res/ 对应的目录下。

4.配置AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>     <manifest xmlns:android="http://schemas.android.com/apk/res/android"         package="您应用的包名"         android:versionCode="216"         android:versionName="2.1.6"     >         <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="23" />           <!-- Required -->         <permission              android:name="您应用的包名.permission.JPUSH_MESSAGE"               android:protectionLevel="signature" />           <!-- Required -->         <uses-permission android:name="您应用的包名.permission.JPUSH_MESSAGE" />         <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />         <uses-permission android:name="android.permission.INTERNET" />         <uses-permission android:name="android.permission.WAKE_LOCK" />         <uses-permission android:name="android.permission.READ_PHONE_STATE" />         <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />         <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />         <uses-permission android:name="android.permission.VIBRATE" />         <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />         <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />         <uses-permission android:name="android.permission.WRITE_SETTINGS" />            <!-- Optional. Required for location feature -->         <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />         <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />         <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />         <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />         <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />         <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />           <application             android:icon="@drawable/ic_launcher"             android:label="@string/app_name"             android:name="Your Application">               <!-- Required SDK 核心功能-->             <!-- option since 2.0.5 可配置PushService,DaemonService,PushReceiver,AlarmReceiver的android:process参数 将JPush相关组件设置为一个独立进程 -->             <!-- 如:android:process=":remote" -->             <service                 android:name="cn.jpush.android.service.PushService"                 android:enabled="true"                 android:exported="false" >                 <intent-filter>                     <action android:name="cn.jpush.android.intent.REGISTER" />                     <action android:name="cn.jpush.android.intent.REPORT" />                     <action android:name="cn.jpush.android.intent.PushService" />                     <action android:name="cn.jpush.android.intent.PUSH_TIME" />                 </intent-filter>             </service>               <!-- since 1.8.0 option 可选项。用于同一设备中不同应用的JPush服务相互拉起的功能。 -->             <!-- 若不启用该功能可删除该组件,将不拉起其他应用也不能被其他应用拉起 -->              <service                  android:name="cn.jpush.android.service.DaemonService"                  android:enabled="true"                  android:exported="true">                  <intent-filter >                      <action android:name="cn.jpush.android.intent.DaemonService" />                      <category android:name="您应用的包名"/>                  </intent-filter>              </service>               <!-- Required -->             <receiver                 android:name="cn.jpush.android.service.PushReceiver"                 android:enabled="true" >                 <intent-filter android:priority="1000">                      <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />                      <category android:name="您应用的包名"/>                  </intent-filter>                 <intent-filter>                     <action android:name="android.intent.action.USER_PRESENT" />                     <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />                 </intent-filter>                 <!-- Optional -->                 <intent-filter>                     <action android:name="android.intent.action.PACKAGE_ADDED" />                     <action android:name="android.intent.action.PACKAGE_REMOVED" />                     <data android:scheme="package" />                 </intent-filter>             </receiver>                <!-- Required SDK核心功能-->             <activity                 android:name="cn.jpush.android.ui.PushActivity"                 android:configChanges="orientation|keyboardHidden"                 android:exported="false" >                 <intent-filter>                     <action android:name="cn.jpush.android.ui.PushActivity" />                     <category android:name="android.intent.category.DEFAULT" />                     <category android:name="您应用的包名" />                 </intent-filter>             </activity>               <!-- Required SDK核心功能-->             <service                 android:name="cn.jpush.android.service.DownloadService"                 android:enabled="true"                 android:exported="false" >             </service>             <!-- Required SDK核心功能-->             <receiver android:name="cn.jpush.android.service.AlarmReceiver" />                 <!-- Required. For publish channel feature -->             <!-- JPUSH_CHANNEL 是为了方便开发者统计APK分发渠道。-->             <!-- 例如: -->             <!-- 发到 Google Play 的APK可以设置为 google-play; -->             <!-- 发到其他市场的 APK 可以设置为 xxx-market。 -->             <!-- 目前这个渠道统计功能的报表还未开放。-->             <meta-data android:name="JPUSH_CHANNEL" android:value="developer-default"/>             <!-- Required. AppKey copied from Portal -->             <meta-data android:name="JPUSH_APPKEY" android:value="Your AppKey"/>          </application>  

5.在工程的混淆文件-proguard-project.txt中添加以下配置:

-dontoptimize-dontpreverify-dontwarn cn.jpush.**-keep class cn.jpush.** { *; }
6.以下代码定制一个本应用程序 Application 类。需要在 AndoridManifest.xml 里配置。请参考上面 AndroidManifest.xml 片断

package com.example.notify;import cn.jpush.android.api.JPushInterface;import android.app.Application;public class MyApp extends Application {@Overridepublic void onCreate() {super.onCreate();JPushInterface.setDebugMode(true);JPushInterface.init(this);}}

确认所需权限都已添加,若未全部添加,日志会提示错误

确认包名和AppKey已正确写入AndoridManifest.xml 

7.可以开始发送啦~~

找到自己创建的应用,选择推送,就可以随意发送消息啦 



希望本文对大家有用,不喜勿喷,撒花~

3 0
原创粉丝点击