Perché un OrderedBroadcast funziona nella build di debug dell'app ma non nel rilascio? Io mando il seguente OrderedBroadcast:Android OrderedBroadcast non funziona in Release Build
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);
Entrambe le applicazioni hanno l'autorizzazione appropriata nel file AndroidManifest.xml e il ricevitore è dichiarato come segue:
<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>
Come ho già detto, se ho sia il mittente e le app del ricevitore che girano in build di debug allora tutto funziona perfettamente tuttavia se eseguo l'app ricevente in modalità di rilascio (senza proguard o altro) l'app del mittente ottiene solo il risultato RESULT_CANCELLED
?
Questo mi ha infastidito per giorni quindi qualsiasi idea sarebbe molto apprezzata.
problemi di autorizzazione? aggiungi il permesso in "", lo hai appena trovato [qui] (http://developer.android.com/intl/es/reference/android/content/BroadcastReceiver.html#Security) –
calvinfly
stai facendo affidamento su il valore risultante? ha fatto il ricevimento del trigger del ricevitore? o eseguire? – Elltz
Il permesso è stato utilizzato e io li ho ricontrollati, mi sto affidando alla ricezione della risposta OK dalla seconda app che il ricevitore non innesca o esegue a meno che non avvii l'app ricevente in modalità di debug? – Apqu