您的位置:首页 > 移动开发 > Android开发

Android项目使用极光推送时步骤及注意的细节

2018-02-28 15:41 585 查看
一,首先你得创建一个项目,然后呢找到极光Android文档如下:我使用的是自动jecnter自定集成步骤:如下:
说明:使用jcenter自动集成的开发者,不需要在项目中添加jar和so,jcenter会自动完成依赖;在AndroidManifest.xml中不需要添加任何JPush SDK相关的配置,jcenter会自动导入。
如果开发者需要修改组件属性,可以在本地的AndroidManifest中定义同名的组件并配置想要的属性,然后用xmlns:tools来控制本地组件覆盖jcenter上的组件。示例:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.tests.flavorlib.app"
xmlns:tools="http://schemas.android.com/tools">

<application
android:icon="@drawable/icon"
android:name="com.example.jpushdemo.ExampleApplication"
android:label="@string/app_name" >

<service android:name="cn.jpush.android.service.PushService"
android:process=":multiprocess"
tools:node="replace" >

……
</service>

……
</application>

……
</manifest>

确认android studio的Project根目录的主gradle中配置了jcenter支持。(新建项目默认配置就支持)
buildscript {
repositories {
jcenter()
}
......
}

allprojets {
repositories {
jcenter()
}
}

在模块的gradle中添加依赖和AndroidManifest的替换变量。
android {
......
defaultConfig {
applicationId "com.xxx.xxx" //JPush上注册的包名.
......

ndk {
//选择要添加的对应cpu类型的.so库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}

manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "你的appkey", //JPush上注册的包名对应的appkey.
JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
]
......
}
......
}

dependencies {
......

compile 'cn.jiguang.sdk:jpush:3.1.1'  // 此处以JPush 3.1.1 版本为例。
compile 'cn.jiguang.sdk:jcore:1.1.9'  // 此处以JCore 1.1.9 版本为例。
......
}

注:如果在添加以上abiFilter配置之后android studio出现以下提示:
NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin
则在项目根目录的gradle.properties文件中添加:
android.useDeprecatedNdk=true
说明:若没有res / drawable-xxxx / jpush_notification_icon这个资源默认使用应用图标作为通知图标,在5.0以上系统将应用图标作为statusbar图标可能显示不正常,用户可定义没有阴影和渐变色的图标替换这个文件,文件名不要变。二,权限配置
<!-- 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" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<!-- Optional. Required for location feature -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 用于开启 debug 版本的应用在6.0 系统上 层叠窗口权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<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" />
<uses-permission android:name="android.permission.GET_TASKS" />
三,所有步骤完成后,就该调用他了
在application中调用:
public class ExampleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
JPushInterface.setDebugMode(true);
JPushInterface.init(this);
}
}
当logcat显示
[JPushInterface] action:init

.......

[PushService] Login succeed!
这时候已经开启推送了,然后需要关闭推送使用方法:
JPushInterface.stopPush(getApplicationContext());做到这一步你已经可以接受到推送了,然后需要对推送的消息进行处理,需要用到广播,不进行处理会直接跳到主页面;
四:处理接受到的消息,将demo中的MyReceiver.class和TestActivity.class两个类拷贝至您的项目中,然后再AndroidMainfest中配置这两个类

配置的时候一定注意将receiver这个配置的包名改成自己的
五,注意点
1,在拷贝极光推送的key时一定要注意去掉空格,会自带空格。
2,获取注册ID,不要再receiver中获取需要在自己的application中去获取。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: