Benutzerdefinierte Berechtigung funktioniert nicht

AKTUALISIEREN

Mein unmittelbares Problem ist gemäß meiner Antwort unten gelöst. Meine Umgebung (PC + -Geräte) lässt keine benutzerdefinierten Berechtigungen in DEBUG-Builds zu.

Ich bin überzeugt, dass ich vor ein paar Wochen DEBUG-Builds problemlos ausführen konnte - daher die Beschreibung eines "intermittierenden" Fehlers.

UPDATE 2

Der Code, der auf dem Computer eines anderen Entwicklers synchronisiert wurde, funktioniert auf seinem Gerät im DEBUG-Modus über Eclipse einwandfrei. Auf meinen Geräten funktioniert es nicht auf seinem Rechner.

Auch der DEBUG-Build von meinem Computer funktioniert auf diesem anderen Gerät einwandfrei.

Dies führt mich zu der Frage, ob auf meinen Geräten ein Fehler aufgetreten ist.

Ich habe eine Unterbrechung"Erlaubnisverweigerung" Problem mit der benutzerdefinierten BerechtigungIntents. Dies ist einer der Bereiche, in denen sich der Code in der Produktion befindet und funktioniert, aber manchmal funktioniert er beim Erstellen neuer Builds nicht mehr. Ich habe es bisher nur durch Glück geschafft, das Problem durch einen Neustart (Gerät & PC), ein sauberes Projekt, eine Deinstallation / Neuinstallation, eine Wiederholung usw. zu beheben. Dies ist inakzeptabel.

Soweit ich sehen kann, tue ich für meine benutzerdefinierten Berechtigungen alles richtigIntents dass ich in meiner App sende. Aber logcat gibt mir die üblichen Fehler von:

W / BroadcastQueue (389): Berechtigungsverweigerung: Übertragungsabsicht {act = A_ACTION flg = 0x10} von com.test (pid = 22030, uid = 10002) erfordert A_PERMISSION aufgrund des registrierten Empfängers BroadcastFilter {43918d50 u0 ReceiverList {4391cad8 22030 com.test / 10002 / u0 remote: 430576d0}}

unter 4.2.1 (Galaxy Nexus) & 4.2.2 (Nexus 7) oder

W / ActivityManager (2002): Berechtigungsverweigerung: Empfangen von Absicht {act = A_ACTION flg = 0x10} für ProcessRecord {41a12748 31496: com.test / 10115} (pid = 31496, uid = 10115) erfordert A_PERMISSION aufgrund des Absenders com.test ( UID 10115)

auf 4.0 (S2) & 2.3.3 (Samsung Ace).

Standardfehler.

Mein MANIFEST sagt:

<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.....

Diese STRINGS sind definiert als (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>

Ich habe eine Methode in meiner Unterklasse APPLICATION, die ich für die Übertragung verwende:

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

Ich melde mich für meineBroadcastReceiver aus einemFragment so was:

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

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

Ich habe die folgenden verwandten Fragen ohne Freude geprüft:

Android Permission Denial: SendeabsichtWie verwende ich benutzerdefinierte Berechtigungen in Android?wie man benutzerdefinierte Berechtigungen in Android deklariert

Ich denke, das deckt ähnliche Fragen auf dieser Seite ab.

Mein Problem ist, dass es intermittierend ist, aber viel Zeit verschwendet, d. H. Einige Builds funktionieren auf allen Telefonen, einige Builds schlagen auf allen Telefonen fehl.

Ich frage mich, ob dies ein Problem in einem der Frameworks ist (entweder Android OS oder vielleicht Eclipse / Android SDK). Leider führt mich mein Googeln nur zu den allgemeineren Problemen mit den allgemeinen Lösungen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage