Niestandardowe uprawnienie niestandardowe nie działa

AKTUALIZACJA

Mój bezpośredni problem został rozwiązany zgodnie z moją odpowiedzią poniżej. Moje środowisko (komputery PC +) nie zezwala na niestandardowe uprawnienia w kompilacjach DEBUG.

Jestem przekonany, że kilka tygodni temu udało mi się uruchomić kompilacje DEBUG - stąd opis „przerywanego” błędu.

AKTUALIZACJA 2

Kod zsynchronizowany na innym komputerze programisty działa poprawnie na jego urządzeniu w trybie DEBUG za pośrednictwem Eclipse. Na moich urządzeniach nie działa z jego komputera.

Również kompilacja DEBUG z mojego komputera działa poprawnie na tym innym urządzeniu.

To prowadzi mnie do pytania, czy coś poszło nie tak na moich urządzeniach?

Mam sporadyczne„Odmowa zezwolenia” problem z uprawnieniami niestandardowymiIntents. Jest to jeden z tych, w których kod jest produkowany i działa, ale czasami podczas tworzenia nowych kompilacji przestaje działać. Udało mi się to naprawić tylko na szczęście, poprzez proces ponownego uruchomienia (urządzenie i komputer), czysty projekt, odinstalowanie / ponowną instalację, powtórzenie itd ... jest to niedopuszczalne.

O ile widzę, robię wszystko, co właściwe dla niestandardowych uprawnień na moimIntents które transmituję w mojej aplikacji. Ale logcat daje mi zwykłe błędy:

W / BroadcastQueue (389): Odmowa uprawnień: transmisja Intent {act = A_ACTION flg = 0x10} z com.test (pid = 22030, uid = 10002) wymaga A_PERMISSION z powodu zarejestrowanego odbiornika BroadcastFilter {43918d50 u0 ReceiverList {4391cad8 22030 com.test / 10002 / u0 remote: 430576d0}}

w 4.2.1 (Galaxy Nexus) i 4.2.2 (Nexus 7) lub

W / ActivityManager (2002): Odmowa uprawnień: odbieranie intencji {act = A_ACTION flg = 0x10} do ProcessRecord {41a12748 31496: com.test / 10115} (pid = 31496, uid = 10115) wymaga A_PERMISSION z powodu nadawcy com.test ( uid 10115)

na 4.0 (S2) i 2.3.3 (Samsung Ace).

tj. błędy standardowe.

Mój MANIFEST mówi:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test"
    android:versionCode="1"
    android:versionName="4.10.0.3" >

    <permission
        android:name="A_PERMISSION"
        android:description="@string/broadcast_permission_desc"
        android:label="@string/broadcast_permission_label"
        android:permissionGroup="@string/broadcast_permission_group"
        android:protectionLevel="signature" />

    <uses-permission android:name="A_PERMISSION" />

    etc.....

Te STRINGS są zdefiniowane jako (fwiw):

<string name="broadcast_permission_label">Private Broadcast</string>
<string name="broadcast_permission_desc">This permission allows the necessary components of the application to receive private broadcasts that are sent within the application.</string>
<string name="broadcast_permission_name">A_PERMISSION</string>
<string name="broadcast_permission_group">A_GROUP</string>

Mam w mojej podstawowej podklasie APPLICATION metodę, której używam do rozgłaszania:

public void sendBroadcast(Intent i)
{
    // hardcoded custom permission
    super.sendBroadcast(i, "A_PERMISSION");
}

ZAREJESTRUJĘ SIĘ na mojeBroadcastReceiver od wewnątrzFragment lubię to:

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    // hardcoded custom permission
    MyApp.getInstance().registerReceiver(myReceiver, myFilter,
        "A_PERMISSION", null);
}

Sprawdziłem następujące pytania bez radości:

Odmowa dostępu do systemu Android: zamiar nadawaniaJak korzystać z niestandardowych uprawnień w systemie Android?jak zadeklarować uprawnienia zdefiniowane przez użytkownika w systemie Android

Myślę, że obejmuje podobne pytania na tej stronie.

Moim problemem jest to, że jego przerywany, ale marnuje mnóstwo czasu, tj. Niektóre kompilacje działają na wszystkich telefonach, niektóre kompilacje zawodzą we wszystkich telefonach.

Zastanawiam się, czy jest to problem w jednym z frameworków (zarówno Android OS, jak i Eclipse / Android SDK). Niestety mój googling prowadzi mnie tylko do bardziej powszechnych problemów ze wspólnymi rozwiązaniami.

questionAnswers(1)

yourAnswerToTheQuestion