Фильтр намерений в манифесте не запускает мою активность - PullRequest
1 голос
/ 24 июня 2011

Я создаю «новое приложение» в приложении «Настройки», которое управляет Bluetooth. У меня следующая проблема: я хочу, чтобы моя активность запускалась при отправке следующего намерения Android платформой: android.bluetooth.device.action.PAIRING_REQUEST

В связи с этим я добавил это в файл AndroidManifest.xml в приложении «Настройки»:

<activity android:name=".mybt.MyBluetoohSettings">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.bluetooth.device.action.PAIRING_REQUEST" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

Проблема в том, что как только это намерение отправлено фреймворком .... мое приложение не запускается!

Я также пробовал использовать только один фильтр намерений (с намерениями MAIN & PAIRING_REQUEST)

Теоретически это должно работать, верно? Что я делаю неправильно? Предложения?

Спасибо заранее!

1 Ответ

0 голосов
/ 24 июня 2011

Запрос на сопряжение Bluetooth должен обрабатываться получателем (расширенным из BroadcastReceiver), а не действием. Поэтому ваш манифест должен содержать внутри <application> элемент, который выглядит примерно так:

    <receiver android:name=".MyReceiver">
        <intent-filter>
            <action android:name="android.bluetooth.device.action.PAIRING_REQUEST" />
        </intent-filter>
    </receiver>

И где-то в вашем приложении у вас будет класс MyReceiver:

public class MyReceiver extends BroadcastReceiver {

   public void onReceive(Context context, Intent intent) {

      //
      // Handle the pairing request
      //
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...