1

可能重复:
如何在android中以编程方式启用/禁用蓝牙

我是android开发的新手。我无法在我的应用程序中禁用蓝牙。在这里,我使用了一个复选框。启用它会启用蓝牙,但在禁用它时仍然启用.. 我该怎么办?

我的代码:

enable_chkbox=(CheckBox)findViewById(R.id.chkboxenable);
enable_chkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        // TODO Auto-generated method stub
        if(buttonView.isChecked())
        {
            if (!mBluetoothAdapter.isEnabled()) {
                Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
            }
            else if(!buttonView.isChecked())//updated
            {
                mBluetoothAdapter.disable();
            //finish();
            }
        }
    }
});

Android Manifest 文件权限:

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

3 回答 3

3

你的else if代码没有用。尝试这个。

  BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();    
  if(buttonView.isChecked())
    {
        if (!mBluetoothAdapter.isEnabled()) {
            Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
        }
    }
    else 
    {
            mBluetoothAdapter.disable();
           //finish();
     }
于 2012-04-24T07:22:40.170 回答
1

看起来你的 else 放错地方了。它应该是

if (buttonView.isChecked()) {
    if (!mBluetoothAdapter.isEnabled()) {
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
    } 
}
else {
    mBluetoothAdapter.disable();
    // finish();
}

希望能帮助到你。

于 2012-04-24T07:21:54.270 回答
0

使用下面的代码 -

enable_chkbox=(CheckBox)findViewById(R.id.chkboxenable);
enable_chkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    // TODO Auto-generated method stub
    if(buttonView.isChecked())
    {
        BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();    
        if (!mBluetoothAdapter.isEnabled()) 
        {
            // do something
        }else
        { 
            mBluetoothAdapter.disable(); 
        }
        }
    }
});
于 2012-04-24T07:22:37.247 回答