Android Bluetooth – rileva una disconnessione da un dispositivo

Sto cercando di catturare un filter intento di disconnessione del dispositivo bluetooth. Ho aggiunto un log al onReceive, ma non lo raggiunge mai e non viene visualizzato nel logcat. Sospetto che il problema sia con la mia configuration manifest.xml:

manifesto:

  • Cambiare il colore del titolo del titolo ActionBar
  • android, Come rinominare un file?
  • Firebase onChildAdded per nuovi dati
  • App Delphi FMX Android. Come aprire la window SMS
  • Doppio buffering in Java su Android con canvas e superficie
  • Come faccio a preparare le immagini per tutte le risoluzioni Android?
  • <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" /> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <receiver android:name="com.company.MyReceiver" android:enabled="true" android:exported="true"> <intent-filter> <category android:name="android.intent.category.DEFAULT" /> <action android:name="android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED" /> <action android:name="android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED" /> <action android:name="android.bluetooth.adapter.action.DISCOVERY_STARTED" /> </intent-filter> </receiver> <activity android:name=".BTActivity" android:label="BTActivity" > </activity> </application> </manifest> 

    MyReceiver estende BroadcastReceiver:

     @Override public void onReceive(Context context, Intent intent) { Log.i("got-in", "got-in-"); // String action = intent.getAction(); BluetoothDevice device = intent .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); Log.i("disconnect", device.getName()); Intent i = new Intent(context, BTActivity.class); Bundle b = new Bundle(); b.putString("deviceName", device.getName()); intent.putExtras(b); // Put your id to your next Intent context.startActivity(i); // finish(); } 

  • Si può utilizzare rsForEach di RenderScript su un kernel non radice?
  • Android SDK e AVD Manager non verranno eseguiti
  • Come installare l'applicazione due volte senza interferenze in android?
  • Google GCM - Non ricevere notifiche push in android Lollipop
  • Come tagliare un rettangolo da un'image in android
  • ERRORE JNI (bug di applicazione): accessibile il riferimento locale stale 0xbc00021 (indice 8 in una tabella di dimensione 8)
  • 4 Solutions collect form web for “Android Bluetooth – rileva una disconnessione da un dispositivo”

    Utilizza questo codice per ricevere una disconnessione (quando Bluetooth è ancora acceso):

     <intent-filter> <action android:name="android.bluetooth.device.action.ACL_CONNECTED" /> <action android:name="android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED" /> <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" /> </intent-filter> 

    Inoltre, è necessario registrare un servizio che registra quindi un ricevitore broadcast per la modifica di stato Bluetooth, in modo che l'applicazione conosca quando Bluetooth è stato distriggersto e quindi scarta tutti i dispositivi attivi, poiché non riceverai un ACL_DISCONNECT quando Bluetooth è semplicemente distriggersto.

     @Override public int onStartCommand(Intent intent, int flags, int startId) { IntentFilter filter = new IntentFilter(); filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); registerReceiver(bluetoothTurnedOnOff, filter); return START_STICKY; } private final BroadcastReceiver bluetoothTurnedOnOff = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1) == BluetoothAdapter.STATE_OFF) { [...] 

    Per i nuovi utenti. functionrà. Il tuo file manifesto guarda

     <receiver android:name="(package name).BluetoothReceiver" > <intent-filter> <action android:name="android.bluetooth.device.action.ACL_CONNECTED" /> <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" /> </intent-filter> </receiver> 

    e il tuo ricevitore sarà simile

     else if (intent.getAction().equals(`enter code here` BluetoothDevice.ACTION_ACL_DISCONNECTED)) { // connection lost 

    Provate a rimuovere la <category .../> dal filter intento e riprovare.

    Prova l'azione android.bluetooth.device.action.ACL_DISCONNECTED nel filter di intenti. Dovrebbe risolvere il problema.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.