爲什麼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