
我的代码如下
if (!mBluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); ctx.startActivity(enableBtIntent);} 当这样做时,代码继续从nect行执行,而不必完全等待蓝牙.有什么方法可以解决这个问题吗?我可以添加外观来检查蓝牙是否已打开?
解决方法 您可以注册broadcastReceiver以侦听BluetoothAdapter上的状态更改.首先创建一个将侦听状态更改的broadcastReceiver
private final broadcastReceiver mReceiver = new broadcastReceiver() { @OverrIDe public voID onReceive(Context context,Intent intent) { final String action = intent.getAction(); if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) { final int bluetoothState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,BluetoothAdapter.ERROR); switch (bluetoothState) { case BluetoothAdapter.STATE_ON: //Bluethooth is on,Now you can perform your tasks break; } } }}; 然后在创建时使用您的Activity注册broadcastReceiver,以便它可以开始接收事件.
@OverrIDepublic voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //Set a filter to only receive bluetooth state changed events. IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED); registerReceiver(mReceiver,filter);} 记住在销毁Activity时取消注册侦听器.
@OverrIDepublic voID onDestroy() { super.onDestroy(); unregisterReceiver(mReceiver);} 总结 以上是内存溢出为你收集整理的如何等到蓝牙在android中打开全部内容,希望文章能够帮你解决如何等到蓝牙在android中打开所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)