咱們本部分文章主要探討低功耗藍牙的開發,關於經典藍牙的開發不是本系列文章的探討範圍。android
咱們都知道對於Android設備而言,是在Android 4.3(API 18)以後開始支持低功耗藍牙。不清楚Android設備中藍牙的發展過程的,能夠閱讀Android設備中的藍牙這篇文章。也就是說本系列文章主要就是基於Android 4.3以後的開發經驗。bash
咱們上面已經提到因爲低版本的Android設備會存在不支持低功耗藍牙的狀況,因此咱們須要首先檢測是否存在低功耗藍牙模塊:ui
/**
* Check wheather support Bluetooth LE.
* <p>是否支持低功耗藍牙</p>
*
* @param context
* @return
*/
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static boolean checkBluetoothLEAvaiblelability(@NonNull Context context) {
if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
return BluetoothAdapter.getDefaultAdapter() != null;
} else {
return false;
}
}複製代碼
/**
* Return true if Bluetooth is currently enabled and ready for use.
* <p>藍牙是否打開</p>
*
* @return true if the local adapter is turned on
*/
@RequiresPermission(Manifest.permission.BLUETOOTH)
public static boolean isEnableBluetooth() {
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
if (adapter != null) {
return adapter.isEnabled();
} else {
return false;
}
}複製代碼
方法一:使用Intent打開藍牙spa
/**
* Turn on the local Bluetooth adapter—do not use without explicit
* ser action to turn on Bluetooth.
* <p>
* onActivityResult() method will be called when action finished
* </p>
*
* @param activity activity
* @param requestCode requestCode
*/
@RequiresPermission(Manifest.permission.BLUETOOTH)
public static void enableBLuetooth(Activity activity, int requestCode) {
final Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
activity.startActivityForResult(intent, requestCode);
}複製代碼
優勢:有回調。
.net
缺點:使用不太方便。code
注意:打開藍牙須要「Manifest.permission.BLUETOOTH」權限。blog
方法二:使用BluetoothAdapterci
BluetoothAdapter.getDefaultAdapter().enable();複製代碼
開啓低功耗藍牙須要檢查是否支持支持低功耗藍牙,同時須要在註冊清單添加以下代碼 :開發
<uses-feature
android:name="android.hardware.bluetooth_le"
android:required="true" />
<!--藍牙相關-->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />複製代碼