在Android中,与蓝牙有关的类和接口在 android.bluetooth 包中。
其中BluetoothAdapter是蓝牙中的核心类,代表本地的蓝牙适配器设备。
BluetoothAdapter类让用户能执行基本的蓝牙任务。
当我们使用蓝牙时会先判断当前手机是否打开了蓝牙,然后在进行相应的处理。
简单来看蓝牙的开启和关闭:
public class MainActivity extends Activity {
private Context mContext;
int mRequest = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = getApplicationContext();
startBLE();
}
/** 开启蓝牙 */
private void startBLE() {
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter == null) {
Toast.makeText(mContext, "本机没有找到蓝牙硬件或驱动!", Toast.LENGTH_SHORT).show();
return;
}
if (!mBluetoothAdapter.isEnabled()) {// 如果本地蓝牙没有开启,则开启
// 方式一
// 我们通过startActivityForResult()方法发起的Intent将会在onActivityResult()回调方法中获取用户的选择,
// 比如用户单击了Yes开启, 那么将会收到RESULT_OK的结果,
// 如果RESULT_CANCELED,则代表用户不愿意开启蓝牙
Intent mIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(mIntent, mRequest);
// 方式二
// 用enable()方法来开启,无需询问用户(悄无声息的开启蓝牙设备),这时就需要用到android.permission.BLUETOOTH_ADMIN权限。
// mBluetoothAdapter.enable();
// mBluetoothAdapter.disable();//关闭蓝牙
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if (requestCode == mRequest) {
if (resultCode == RESULT_OK) {
Toast.makeText(mContext, "蓝牙已经开启", Toast.LENGTH_SHORT).show();
} else if (resultCode == RESULT_CANCELED) {
Toast.makeText(mContext, "不允许蓝牙开启", Toast.LENGTH_SHORT).show();
}
}
super.onActivityResult(requestCode, resultCode, data);
}
}