Ответ 1
В отличие от разрешений, чтобы обнаружить изменение состояния bluetooth, вам нужно добавить это в свой AndroidManifest.xml.
<uses-permission android:name="android.permission.BLUETOOTH" />
Пример приемника будет выглядеть следующим образом: вы добавляете этот код туда, где хотите обрабатывать широковещательную передачу, например, активность:
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive (Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) {
if(intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1)
== BluetoothAdapter.STATE_OFF)
// Bluetooth is disconnected, do handling here
}
}
};
Чтобы использовать ресивер, вам необходимо его зарегистрировать. Что вы можете сделать следующим образом. Я регистрирую ресивер в своей основной деятельности.
registerReceiver(this, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
Вы также можете добавить все его в свой AndroidManifest.xml. Таким образом, вы можете сделать специальный класс для приемника и обработать его там. Не нужно регистрировать приемник, просто введите класс и добавьте приведенный ниже код в AndroidManifest
<receiver
android:name=".packagename.NameOfBroadcastReceiverClass"
android:enabled="true">
<intent-filter>
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED"/>
</intent-filter>
</receiver>