为什么OrderedBroadcast可以在应用程序的调试版本中工作,但不能在发布版本中工作?我送以下OrderedBroadcast:Android OrderedBroadcast不能在发布版本中工作
context.sendOrderedBroadcast(sendInt, "xxx.xxxx.permission.API", new BroadcastReceiver() {
@SuppressLint("NewApi")
@Override
public void onReceive(Context receivercontext, Intent intent) {
Bundle results = getResultExtras(true);
if (results.getInt("Result", Activity.RESULT_CANCELED) == Activity.RESULT_OK) {
Log.d("DEBUG", "OK");
} else {
Log.e("DEBUG", "Failed");
}
}
}, null, Activity.RESULT_OK, null, null);
这两个应用程序都在AndroidManifest.xml文件中适当的权限和接收声明如下:
<receiver android:name="xxx.xxxx.xxxx.Receiver1"
android:enabled="true"
android:exported="true"
android:permission="xxx.xxxx.permission.API">
<intent-filter>
<action android:name="xxx.xxxx.permission.API.1" />
</intent-filter>
</receiver>
正如我所说,如果我有发送方和接收器应用程序在调试版本中运行,然后一切正常,但如果我运行接收器应用程序在发布模式(没有proguard或任何东西)发件人应用程序只是得到RESULT_CANCELLED
结果?
这已经给我留了好几天的时间,所以任何想法都将不胜感激。
权限问题?在''中添加权限,刚刚发现它[这里](http://developer.android.com/intl/es/reference/android/content/BroadcastReceiver.html#Security) –
calvinfly
你是依靠结果值?接收器触发器的接收器?或执行? – Elltz
该权限已被使用,我已经重新检查了这些,我依靠接收来自第二个应用的OK响应,接收器不会触发或执行,除非我在调试模式下运行接收器应用程序? – Apqu