Как я могу в активити повесить callback на подключение любого девайса? Т.е. что-бы мне пришло оповещение, НЕ что есть доступные устройства bluetooth, а ловить события что вот подключился девайс или отключился.
Я пытался сделать через BluetoothGattCallback:
onCreate
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BluetoothManager mBluetoothManager = (BluetoothManager) getSystemService(this.BLUETOOTH_SERVICE);
BluetoothAdapter mBluetoothAdapter = mBluetoothManager.getAdapter();
//mBluetoothAdapter.getAddress() обрати внимание, сюда нужно передать адрес конкретного девайса вроедю Не работает так как у меня
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(mBluetoothAdapter.getAddress());
BluetoothGatt bluetoothGatt = device.connectGatt(this, false, bluetoothCallback);
BluetoothGattCallback
private BluetoothGattCallback bluetoothCallback =
new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
if (newState == BluetoothProfile.STATE_CONNECTED) {
Log().d("ROMA", "new BT device Connected");
} else if (newState == BluetoothProfile.STATE_DISCONNECTED) {
Log().d("ROMA", "BT device disconnected");
}
}
};
Для это потребуется создать свой BroadcastReceiver
1) В манифесте укажите следующие разрешения:
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
2) Опишите свой BroadcastReceiver, который будет ловить события подключения/отключения девайсов:
public class BluetoothDevicesReceiver extends BroadcastReceiver {
public BluetoothDevicesReceiver() {}
@Override
public void onReceive(Context context, Intent intent){
if(BluetoothDevice.ACTION_ACL_CONNECTED.equals(intent.getAction()){
// Что-то подключилось
} else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(intent.getAction()){
// Что-то отключилось
}
}
}
3) Зарегистрируйте свой BroadcastReceiver в манифесте в секции application:
<receiver
android:name="Название вашего BroadcastReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="android.bluetooth.adapter.action.ACL_CONNECTED/>
<action android:name="android.bluetooth.adapter.action.ACL_DISCONNECTED/>
</intent-filter>
</receiver>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Для расчётов мне требовалось перевести LocalDate в epochDays, теперь надо обратноПока сделал вот такую конструкцию:
Нужно проверить есть ли в таблице поле с заданной датой,если нет,то создать, если есть - положить в last_insert_id() id существующего поляПытался сделать...