Намеренное пользовательское разрешение не работает

ОБНОВИТЬ

Моя непосредственная проблема решена согласно моему ответу ниже. Моя среда (ПК + устройства) не допускает пользовательских разрешений в сборках DEBUG.

Я убежден, что смог запустить сборки DEBUG несколько недель назад - отсюда и описание "периодической" ошибки.

ОБНОВЛЕНИЕ 2

Код, синхронизированный на компьютере другого разработчика, прекрасно работает на его устройстве в режиме DEBUG через Eclipse. На моих устройствах не работает со своей машины.

Кроме того, сборка DEBUG с моей машины отлично работает на этом другом устройстве.

Это приводит меня к вопросу, если что-то пошло не так на моих устройствах?

У меня прерывистый«Отказ в разрешении» проблема с пользовательским разрешениемIntents, Это один из тех, где код находится в производстве и работает, но иногда при создании новых сборок он перестает работать. Мне только удалось исправить это по счастливой случайности, прежде чем, через процесс перезагрузки (устройство и компьютер), очистить проект, удалить / переустановить, повторить и т. Д ... это недопустимо.

Насколько я вижу, я делаю все правильно для пользовательских разрешений на моемIntents что я вещаю в моем приложении. Но logcat выдаёт мне обычные ошибки:

W / BroadcastQueue (389): Отказ в разрешении: трансляция Intent {act = A_ACTION flg = 0x10} из com.test (pid = 22030, uid = 10002) требует A_PERMISSION из-за зарегистрированного приемника BroadcastFilter {43918d50 u0 ReceiverList {4391cad8 22030 com.test / 10002 / u0 удаленный: 430576d0}}

на 4.2.1 (Galaxy Nexus) и 4.2.2 (Nexus 7), или

W / ActivityManager (2002): Отказ в разрешении: получение намерения {act = A_ACTION flg = 0x10} для ProcessRecord {41a12748 31496: com.test / 10115} (pid = 31496, uid = 10115) требует A_PERMISSION из-за отправителя com.test ( UID 10115)

на 4.0 (S2) и 2.3.3 (Samsung Ace).

т.е. стандартные ошибки.

Мой манифест говорит:

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

Эти строки определены как (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>

У меня есть метод в моем базовом подклассе APPLICATION, который я использую для вещания:

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

Я РЕГИСТРАЦИЯ для моегоBroadcastReceiver изнутриFragment нравится:

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

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

Я проверил следующие связанные вопросы без радости:

Отказ в разрешении Android: намерение вещанияКак использовать пользовательские разрешения в Android?Как объявить пользовательские разрешения в Android

Я думаю, что охватывает аналогичные вопросы на этом сайте.

Моя проблема в том, что он прерывистый, но тратит много времени, т. Е. Некоторые сборки работают на всех телефонах, некоторые сборки не работают на всех телефонах.

Интересно, если это проблема в одной из платформ (либо ОС Android, или, возможно, Eclipse / Android SDK). К сожалению, мой поиск в Google только приводит меня к более общим проблемам с общими решениями.

Ответы на вопрос(1)

Ваш ответ на вопрос