android 蓝牙设备断开,java – Android蓝牙 – 检测设备断开连接

我正在尝试捕捉蓝牙设备断开连接意图过滤器.

我在onReceive中添加了一个日志,但它从未到达它并且没有显示在logcat中.

我怀疑问题出在我的manifest.xml配置上:

表现:

package="com.company"

android:versionCode="1"

android:versionName="1.0" >

android:minSdkVersion="10"

android:targetSdkVersion="16" />

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

android:name=".BTActivity"

android:label="BTActivity" >

MyReceiver扩展了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();

}

解决方法:

使用此代码接收断开连接(当蓝牙仍然打开时):

此外,您必须注册一个服务,然后注册广播接收器以进行蓝牙状态更改,以便您的应用知道何时关闭蓝牙并因此丢弃所有活动设备,因为当蓝牙被关闭时您将不会收到ACL_DISCONNECT.

@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) {

[...]

标签:android,java,android-intent,bluetooth

来源: https://codeday.me/bug/20191006/1859614.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值