Warum würde ein OrderedBroadcast im Debug-Build der App funktionieren, aber nicht in der Version? Ich schicke die folgende OrderedBroadcast:Android OrderedBroadcast funktioniert nicht im 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);
Beide Anwendungen die entsprechende Berechtigung in der AndroidManifest.xml-Datei und der Empfänger erklärt sich wie folgt:
<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>
Wie ich bereits erwähnt, wenn ich sowohl den Absender und Empfänger-Apps, die in Debug-Builds laufen, dann funktioniert alles einwandfrei. Wenn ich die Receiver-App im Release-Modus starte (kein Proguard oder irgendetwas), bekommt die Sender-App nur das Ergebnis RESULT_CANCELLED
?
Das hat mich seit Tagen abgehört, also würden alle Ideen sehr geschätzt werden.
Berechtigungsprobleme? Fügen Sie die Berechtigung in '' hinzu und finden Sie sie [hier] (http://developer.android.com/intl/es/reference/android/content/BroadcastReceiver.html#Security) –
calvinfly
vertrauen Sie der resultierende Wert? Hat der OnReceive des Recievers ausgelöst? oder ausführen? – Elltz
Die Berechtigung wurde verwendet und ich habe diese erneut überprüft. Ich verlasse mich darauf, die OK-Antwort von der zweiten App zu erhalten, die der Empfänger nicht auslöst oder ausführt, wenn ich die Empfänger-App nicht im Debug-Modus ausführe. – Apqu