由于网上大部分集成文章有错误,且官方文档写的不够详细。因此笔者在此处记录一下自己集成极光推送的过程。
创建应用
登录官网后进入开发者平台
点击创建应用输入应用名称
此处应用名称必填,图片上传可选
创建完成后可以看到我们创建应用的AppKey
点击下方的推送设置,设置应用包名
设置完成之后下载demo,集成极光推送需要用到demo中的代码。
集成推送
1.添加jcenter库
在project中添加 jcenter
库(Android Studio创建项目时候已经自动生成)
allprojects {
repositories {
jcenter()
}
}
repositories {
jcenter()
}
2.在app下的build.gradle中添加如下代码
defaultConfig {
applicationId "xxxx" //JPush 上注册的包名.
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "xxxxx", //JPush 上注册的包名对应的 Appkey.
JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
]
}
3.从demo中将如下文件拷到工程的对应目录下
4.在AndroidManifest中添加权限
其中xxx为在应用上注册的包名
将demo中的相应权限添加进来即可
<!-- Required -->
<permission
android:name="xxx.permission.JPUSH_MESSAGE"
android:protectionLevel="signature" />
<!-- Required 一些系统要求的权限,如访问网络等-->
<uses-permission android:name="xxx.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.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.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- Optional for location -->
<uses-permission android:name="android.permission.VIBRATE" />
<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" />
以上就完成了极光推送的集成工作
初始化
将demo中的代码文件全部拷到工程中即可
运行程序,初始化完成后在控制平台就可以发送推送了。