为了账号安全,请及时绑定邮箱和手机立即绑定

android 5.0以上 极光权限配置出错

android 5.0以上 极光权限配置出错

扬帆大鱼 2018-07-16 15:22:46
最近做个需求,新增个渠道,指定不同的包名和不同的签名文件。结果包名B的apk不能和包名A的apk同时安装到同一手机上(5.0以上)。报错信息:Package 包名B attempting to redeclare permission 包名A.permission.JPUSH_MESSAGE already owned by 包名Amanifest中是这样配置的:android:name="${applicationId}.permission.JPUSH_MESSAGE" android:protectionLevel="signature"/>
查看完整描述

1 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

极光推送实现步骤概括:
1.查看Project下的build.gradle里面是否有,buildscript 和 allprojects ;
2.在app下的defaultConfig下面添加,ndk 和 manifestPlaceholders ,然后添加两个依赖 
compile 'cn.jiguang.sdk:jpush:3.0.5' // 此处以JPush 3.0.5 版本为例。
compile 'cn.jiguang.sdk:jcore:1.1.2' // 此处以JCore 1.1.2 版本为例。

3.清单文件,添加权限和Service,修改成自己的包名
4.去极光推送官网上创建应用,复制AppKey,然后回到build.gradle(app) 和 清单文件里面,修改成自己的AppKey
5.创建Receiver应用,继承BroadCastReceiver

public class MyReceiver extends BroadcastReceiver {
String TAG = MyReceiver.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Log.d(TAG, "onReceive - " + intent.getAction());

if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);
Log.d(TAG, "[MyReceiver] 接收Registration Id : " + regId);
}else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {
Log.d(TAG, "收到了自定义消息。消息内容是:" + bundle.getString(JPushInterface.EXTRA_MESSAGE));
// 自定义消息不会展示在通知栏,完全要开发者写代码去处理
} else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {
Log.d(TAG, "收到了通知");
// 在这里可以做些统计,或者做些其他工作
} else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
Log.d(TAG, "用户点击打开了通知");
// 在这里可以自己写代码去定义用户点击后的行为
Intent i = new Intent(context, ToolbarActivity.class); //自定义打开的界面
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
} else {
Log.d(TAG, "Unhandled intent - " + intent.getAction());
}

}
}


查看完整回答
反对 回复 2018-07-23
  • 1 回答
  • 0 关注
  • 974 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信