Android项目使用极光推送时步骤及注意的细节
2018-02-28 15:41
585 查看
一,首先你得创建一个项目,然后呢找到极光Android文档如下:我使用的是自动jecnter自定集成步骤:如下:
说明:使用jcenter自动集成的开发者,不需要在项目中添加jar和so,jcenter会自动完成依赖;在AndroidManifest.xml中不需要添加任何JPush SDK相关的配置,jcenter会自动导入。
如果开发者需要修改组件属性,可以在本地的AndroidManifest中定义同名的组件并配置想要的属性,然后用xmlns:tools来控制本地组件覆盖jcenter上的组件。示例:
确认android studio的Project根目录的主gradle中配置了jcenter支持。(新建项目默认配置就支持)
在模块的gradle中添加依赖和AndroidManifest的替换变量。
注:如果在添加以上abiFilter配置之后android studio出现以下提示:
在application中调用:
JPushInterface.stopPush(getApplicationContext());做到这一步你已经可以接受到推送了,然后需要对推送的消息进行处理,需要用到广播,不进行处理会直接跳到主页面;
四:处理接受到的消息,将demo中的MyReceiver.class和TestActivity.class两个类拷贝至您的项目中,然后再AndroidMainfest中配置这两个类
配置的时候一定注意将receiver这个配置的包名改成自己的
五,注意点
1,在拷贝极光推送的key时一定要注意去掉空格,会自带空格。
2,获取注册ID,不要再receiver中获取需要在自己的application中去获取。
说明:使用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中去获取。
相关文章推荐
- Ionic项目中使用极光推送-android
- Ionic项目中使用极光推送-android
- Ionic项目中使用极光推送-android
- Android项目使用Dcloud架构处理极光推送跳转以及加载JS回调方法
- Ionic项目中使用极光推送-android
- AndroidPn项目实现推送的使用过程
- Android 极光推送基本步骤
- android虚拟机emulator应用安装--使用adb install安装步骤和注意事项
- 渣蜀黍 - iOS 个人笔记(四)_极光推送使用步骤
- Android开发之极光推送基本步骤
- [原]Android Studio使用极光推送出现at cn.jpush.android.service.ServiceInterface.a(Unknown Source) 已解决
- Ionic项目中使用极光推送
- Android JPush(极光推送)的使用教程
- 使用Tortoise SVN版本控制Android项目in eclipse的注意事项
- 在ionic项目中使用极光推送实现推送 & 服务器端代码
- 【Android应用开发】 推送原理解析 极光推送使用详解 (零基础精通推送)
- 通过看极光网站的文档,给自己的项目做极光推送的步骤
- 极光推送使用实例(三) Android客户端
- AndroidPn项目实现推送的使用过程
- Android客户端与PHP服务端通信(三)---极光推送注册使用