如何使用广播接收机检测蓝牙状态变化?

我正在尝试制作一个应用程序,在设备的蓝牙开启时显示敬酒。 即使当我的应用程序没有运行,我也想这样做。 所以我应该使用广播接收器,添加一些权限,意图过滤到Android清单,并作出一个Java类,但我不知道的细节。

我该怎么办? 我应该使用哪些权限?

  • ANR意向广播{act = android.intent.action.SCREEN_OFF flg = 0x50000010}
  • Android小部件在模拟器中运行良好,但在手机上它变成了Google App小部件
  • Android:将SD卡作为磁盘驱动器安装到计算机时检测
  • 在Android中检测何时closures漫游
  • Android:检测GPS打开/关闭时(或者当没有应用程序正在使用它时)
  • BroadcastReceiver被调用时如何解锁屏幕?
  • 来电录音/处理服务! - Android
  • 监听器和接收器(Android)之间有什么区别?
  • 至于权限去,检测蓝牙的状态变化,你需要添加到您的AndroidManifest.xml。

    <uses-permission android:name="android.permission.BLUETOOTH" /> 

    一个接收器的例子看起来像这样,你把这个代码添加到你想要处理广播的地方,例如一个activity:

      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中。 这样你就可以为接收器做一个特殊的课程并在那里处理。 无需注册接收器,只需创build类并将以下代码添加到AndroidManifest

     <receiver android:name=".packagename.NameOfBroadcastReceiverClass" android:enabled="true"> <intent-filter> <action android:name="android.bluetooth.adapter.action.STATE_CHANGED"/> </intent-filter> </receiver> 

    你必须得到以下许可。

     <uses-permission android:name="android.permission.BLUETOOTH" /> 

    你必须把它写成接收者标签中的意图filter。

     <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />