徐州网站制作功能,做网站网站被抓没盈利,免费推广产品的网站,凡科网建立网站后怎么修改【注#xff1a;有问题请忽略此文】 看了官网和相关博客#xff0c;试了试#xff0c;步骤很多、问题也很多#xff01; 此种方式有时间再试试吧#xff0c;待更新。。。。。。
4、jcenter 自动集成 4.1、配置jcenter支持4.2、gradle中添加依赖4.3、配置混淆文件4.4、极光…【注有问题请忽略此文】 看了官网和相关博客试了试步骤很多、问题也很多 此种方式有时间再试试吧待更新。。。。。。
4、jcenter 自动集成 4.1、配置jcenter支持4.2、gradle中添加依赖4.3、配置混淆文件4.4、极光推送权限配置4.5、初始化极光推送4.6、创建自定义的广播接收器6、删除应用
4、jcenter 自动集成 使用 jcenter 自动集成的开发者不需要在项目中添加 jar 和 sojcenter 会自动完成依赖在 AndroidManifest.xml 中不需要添加任何 JPush SDK 相关的配置jcenter 会自动导入。 相对于之前的手动集成方式这种方法真的是简单快捷可以省去很多操作让你分分钟搞定极光推送再也不用为以前那种大规模复制粘贴而烦恼了。
参考官方说明 https://docs.jiguang.cn/jpush/client/Android/android_guide/#jcenter
参考链接 https://www.jianshu.com/p/8072e85bafaa https://blog.csdn.net/lijueqing/article/details/80824040
参考下载的demo JPushExample(1143290) 【 “2、创建应用下载极光Demo” 时下载 】
选择“jcenter 自动集成”
4.1、配置jcenter支持 在Project 根目录的主 gradle 中配置了jcenter支持新建project默认配置就支持
buildscript {repositories {jcenter()}
}allprojets {repositories {jcenter()}
}4.2、gradle中添加依赖 在Moudle的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上注册的包名.JPUSH_APPKEY : 你的appkey, //JPush上注册的包名对应的appkey.JPUSH_CHANNEL : developer-default, //暂时填写默认值即可.]}
}dependencies {......compile cn.jiguang.sdk:jpush:3.1.3 // 此处以JPush 3.1.3 版本为例。compile cn.jiguang.sdk:jcore:1.2.1 // 此处以JCore 1.2.1 版本为例。......
}版本信息如可以参考下载的 “JPushExample(1143290)” demo文件
注 :
如果在添加以上 abiFilter 配置之后android Studio出现以下提示
NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin则在 Project 根目录的gradle.properties文件中添加
android.useDeprecatedNdktrue这种情况基本上不会出现只有用到NDK时才有可能遇到
4.3、配置混淆文件 在 proguard-rules.pro 文件中加入混淆代码
-dontoptimize
-dontpreverify-dontwarn cn.jpush.**
-keep class cn.jpush.** { *; }
-keep class * extends cn.jpush.android.helpers.JPushMessageReceiver { *; }-dontwarn cn.jiguang.**
-keep class cn.jiguang.** { *; }4.4、极光推送权限配置 根据需求添加权限
!-- Required --permissionandroid:name您应用的包名.permission.JPUSH_MESSAGEandroid:protectionLevelsignature /!-- Required --uses-permission android:name您应用的包名.permission.JPUSH_MESSAGE /uses-permission android:nameandroid.permission.RECEIVE_USER_PRESENT /uses-permission android:nameandroid.permission.INTERNET /uses-permission android:nameandroid.permission.WAKE_LOCK /uses-permission android:nameandroid.permission.READ_PHONE_STATE /uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE /uses-permission android:nameandroid.permission.READ_EXTERNAL_STORAGE /uses-permission android:nameandroid.permission.VIBRATE /uses-permission android:nameandroid.permission.MOUNT_UNMOUNT_FILESYSTEMS /uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE /uses-permission android:nameandroid.permission.WRITE_SETTINGS /uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE /!-- Optional. Required for location feature --uses-permission android:nameandroid.permission.SYSTEM_ALERT_WINDOW / !-- 用于开启 debug 版本的应用在6.0 系统上 层叠窗口权限 --uses-permission android:nameandroid.permission.ACCESS_COARSE_LOCATION /uses-permission android:nameandroid.permission.CHANGE_WIFI_STATE /uses-permission android:nameandroid.permission.ACCESS_FINE_LOCATION /uses-permission android:nameandroid.permission.ACCESS_LOCATION_EXTRA_COMMANDS /uses-permission android:nameandroid.permission.CHANGE_NETWORK_STATE /uses-permission android:nameandroid.permission.GET_TASKS /4.5、初始化极光推送 在自定义的Application中onCreate中调用极光推送的初始化方法
public class MyApplication extends Application {Overridepublic void onCreate() {super.onCreate();JPushInterface.setDebugMode(true); //正式环境时去掉此行代码JPushInterface.init(this);}
}然后在 AndroidManifest.xml 文件中关联MyApplication applicationandroid:name.MyApplicationandroid:allowBackuptrueandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:roundIconmipmap/ic_launcher_roundandroid:supportsRtltrueandroid:themestyle/AppTheme4.6、创建自定义的广播接收器 自定义广播接收器官方Demo已给出(这里已简化)
/*** 自定义JPush接收器* p* 如果不定义这个 Receiver则* 1) 默认用户会打开主界面* 2) 接收不到自定义消息*/
public class JPushReceiver extends BroadcastReceiver {private static final String TAG JIGUANG-Example;Overridepublic void onReceive(Context context, Intent intent) {try {Bundle bundle intent.getExtras();if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {//极光服务器分配的Registration IdString regId bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);} else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {//自定义消息} else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {//推送通知} else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {//当用户点击通知时的操作,打开自定义的ActivityIntent i new Intent(context, TestActivity.class);i.putExtras(bundle);i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);context.startActivity(i);} } catch (Exception e) {}}
} 然后在 AndroidManifest.xml 文件中声明JPushReceiver
receiverandroid:name.JPushReceiverandroid:enabledtrueintent-filter!--Required 用户注册SDK的intent--action android:namecn.jpush.android.intent.REGISTRATION /!--Required 用户接收SDK消息的intent--action android:namecn.jpush.android.intent.MESSAGE_RECEIVED /!--Required 用户接收SDK通知栏信息的intent--action android:namecn.jpush.android.intent.NOTIFICATION_RECEIVED /!--Required 用户打开自定义通知栏的intent--action android:namecn.jpush.android.intent.NOTIFICATION_OPENED /!-- 接收网络变化 连接/断开 since 1.6.3 --action android:namecn.jpush.android.intent.CONNECTION /category android:name您应用的包名 //intent-filter/receiver到这里关于极光推送的集成就已经完成了可以在极光推送后台发生条推送测试一下了。
6、删除应用