0

我是 Android 新手,我只是想开发一个可以打开/关闭设备上蓝牙的应用程序。此代码在 Android 4.2/4.3 上完美运行(在物理设备上测试);但是它不在 Android 4.0/4.1 上。任何人都可以帮我解决这个问题吗?

import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SeekBar;
import android.widget.Switch;
import android.widget.TextView;
import android.view.Menu;

public class MainActivity extends Activity {

private static final int REQUEST_ENABLE_BT = 1;
private BluetoothAdapter bA;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public void onResume(){
    checkBluetooth();
    setBluetoothListener();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}


private void checkBluetooth(){
    bA = BluetoothAdapter.getDefaultAdapter();
    Switch blue = (Switch)findViewById(R.id.switch4);
    blue.setChecked(true);
    }

private void setBluetoothListener(){
    Switch sBlue = (Switch) findViewById(R.id.switch4);
    sBlue.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
             if (arg1) {
                    Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                    startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);   
                } else {
                    bA.disable();
                }
            }
    });
}

}

4

1 回答 1

0

尝试:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    checkBluetooth();
    setBluetoothListener();
}


@Override
public void onResume(){
    super.onResume();
    checkBluetooth();
}

在您的 onCreate() 方法中,建议在此处创建和绑定视图和数据。并留下你的 onResume 只是为了检查是否有任何变量发生了变化(即蓝牙状态)。

这也是你想要的:

private void checkBluetooth(){
    bA = BluetoothAdapter.getDefaultAdapter();
    Switch blue = (Switch)findViewById(R.id.switch4);
    blue.setChecked(bA.isEnabled());
}
于 2013-08-06T22:26:08.973 回答