按钮单击时以编程方式关闭蓝牙可发现状态

时间:2012-06-15 11:44:38

标签: android button bluetooth discoverability

如何以编程方式关闭蓝牙可发现状态。

第一次点击(按钮)我可以让它被发现,并且第二次点击同一个按钮它不能正常工作

我的意思是,如果它处于可发现状态,我应该将其关闭

这是我的代码

     bt_strength.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {
            // TODO Auto-generated method stub

        //  if (mBtAdapter.getScanMode()!= BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE)
            if(!mBtAdapter.isDiscovering())
            {
                // if(bluetoothimg.getTag().toString().equalsIgnoreCase("off"))
                Log.i(TAG, "BLUETOOTH STATUS ON");
                bt_strength.setImageResource(R.drawable.bt);
                 Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
                    discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 3600);
                    startActivity(discoverableIntent);  
            } 
            else if(mBtAdapter.isDiscovering()){

                bt_strength.setImageResource(R.drawable.bt_grey);
                // Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
               //     discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 1);
                //    startActivity(discoverableIntent);    
                mBtAdapter.cancelDiscovery();


            }

我们非常感谢任何帮助,谢谢

1 个答案:

答案 0 :(得分:0)

您在if子句中所做的是,您启用了可发现模式 - 这意味着其他蓝牙设备可以看到您的设备。

但是你在else-if-clause中所做的事情就是你取消了发现 - 这意味着你停止搜索其他设备。

你现在所写的评论(在else-if-clause中)应该是最好的工作,但不是完美的解决方案,关于: Disable Bluetooth discoverable mode on Android