Dlaczego funkcja OrderedBroadcast działa w wersji debugowania aplikacji, ale nie w wersji? Przesyłam następujące OrderedBroadcast:Android OrderedBroadcast nie działa przy tworzeniu wersji
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);
Obie aplikacje mają odpowiednie uprawnienia do pliku AndroidManifest.xml a odbiornik jest zadeklarowana następująco:
<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>
Jak już wspomniałem, jeśli mam zarówno nadawcy i aplikacje odbiornika działające w wersjach debugowych, a następnie wszystko działa idealnie, ale jeśli uruchomię aplikację odbiornika w trybie zwolnienia (bez proguarda lub czegokolwiek innego), aplikacja nadawcy po prostu uzyska wynik RESULT_CANCELLED
?
To drażniło mnie od wielu dni, więc wszelkie pomysły będą mile widziane.
problemy z uprawnieniami? dodaj uprawnienia w '', po prostu znalazłeś je [tutaj] (http://developer.android.com/intl/es/reference/android/content/BroadcastReceiver.html#Security) –
calvinfly
czy polegasz na wynikowa wartość? czy uruchomił się onReceive od odbiornika? lub wykonać? – Elltz
Pozwolenie zostało użyte i ponownie je sprawdziłem, polegam na otrzymywaniu odpowiedzi OK z drugiej aplikacji, której odbiornik nie uruchamia ani nie wykonuje, chyba że uruchomię aplikację odbiornika w trybie debugowania? – Apqu