国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android 藍(lán)牙狀態(tài)的監(jiān)聽

這篇具有很好參考價(jià)值的文章主要介紹了Android 藍(lán)牙狀態(tài)的監(jiān)聽。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、需求背景

客戶在使用我公司的Flutter插件時(shí),要求有一個(gè)藍(lán)牙與設(shè)備重連的功能,我用公司提供的Android SDK只能實(shí)現(xiàn)超出和進(jìn)入藍(lán)牙范圍進(jìn)行重連,但是無法在藍(lán)牙打開進(jìn)行重連,這不得不讓我使用Android手寫一個(gè)廣播監(jiān)聽。

二、實(shí)現(xiàn)步驟

1. 添加權(quán)限

2. 創(chuàng)建一個(gè)類繼承 BroadcastReceiver

3. 動(dòng)態(tài)注冊(cè)和注銷廣播

4. 監(jiān)聽藍(lán)牙狀態(tài)

三、代碼分享

1. 添加權(quán)限

在 AndroidManifest.xml 中添加藍(lán)牙權(quán)限

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

2. 創(chuàng)建一個(gè)類繼承 BroadcastReceiver

public class BLEStateReceiver extends BroadcastReceiver {

    private static final String BLE_STATE_OFF = "android.bluetooth.BluetoothAdapter.STATE_OFF";
    private static final String BLE_STATE_ON = "android.bluetooth.BluetoothAdapter.STATE_ON";
    private static BLEStateReceiver receiver = new BLEStateReceiver();

    /**
     * 注冊(cè)
     *
     * @param context
     */
    public static void register(Context context) {
        IntentFilter filter = new IntentFilter();
        filter.setPriority(Integer.MAX_VALUE);
        // 監(jiān)視藍(lán)牙關(guān)閉和打開的狀態(tài)
        filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
        filter.addAction(BLE_STATE_OFF);
        filter.addAction(BLE_STATE_ON);
        context.registerReceiver(receiver, filter);
    }

    /**
     * 注銷
     *
     * @param context
     */
    public static void unregister(Context context) {
        context.unregisterReceiver(receiver);
    }

    @Override
    public void onReceive(final Context context, Intent intent) {
        // 檢測(cè)藍(lán)牙狀態(tài)的邏輯
    }

}

3. 動(dòng)態(tài)注冊(cè)和注銷廣播

我這里是在 ActivityAware 的生命周期中注冊(cè)的,你可以根據(jù)實(shí)際情況進(jìn)行注冊(cè),只要在應(yīng)用運(yùn)行時(shí)注冊(cè)就行。

public class MoyoungBlePlugin implements ActivityAware {
    
    private Activity activity;

    @Override
    public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) {
        activity = binding.getActivity();

        // 注冊(cè)廣播
        BLEStateReceiver.register(activity);
    }

    @Override
    public void onDetachedFromActivityForConfigChanges() {
    }

    @Override
    public void onReattachedToActivityForConfigChanges(@NonNull ActivityPluginBinding binding) {
    }

    @Override
    public void onDetachedFromActivity() {
        // 注銷廣播
        BLEStateReceiver.unregister(activity);
        activity = null;
    }

}

4. 監(jiān)聽藍(lán)牙狀態(tài)

我這里只監(jiān)聽了藍(lán)牙的兩種狀態(tài),如果想要監(jiān)聽多種狀態(tài)可以查看參考。

public class BLEStateReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(final Context context, Intent intent) {
        checkBLEState(context, intent);
    }

    /**
     * 檢測(cè)藍(lán)牙狀態(tài)
     *
     * @param context
     * @param intent
     */
    private synchronized void checkBLEState(Context context, Intent intent) {
        int BLEState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, 0);
        switch (BLEState) {
            case BluetoothAdapter.STATE_ON:
                // 藍(lán)牙已經(jīng)打開
                break;
            case BluetoothAdapter.STATE_TURNING_OFF:
                // 藍(lán)牙正在關(guān)閉
                break;
        }
    }

}

四、參考文案

Android開發(fā)——藍(lán)牙狀態(tài)的監(jiān)聽 - 簡(jiǎn)書

Android監(jiān)聽藍(lán)牙與設(shè)備連接狀態(tài)、關(guān)閉和打開狀態(tài)_android 藍(lán)牙連接狀態(tài)監(jiān)聽_MasonYyp的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-686237.html

到了這里,關(guān)于Android 藍(lán)牙狀態(tài)的監(jiān)聽的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 藍(lán)牙App設(shè)計(jì)2:使用Android Studio制作一個(gè)藍(lán)牙軟件(包含:代碼實(shí)現(xiàn)等)

    藍(lán)牙App設(shè)計(jì)2:使用Android Studio制作一個(gè)藍(lán)牙軟件(包含:代碼實(shí)現(xiàn)等)

    前言:藍(lán)牙聊天App設(shè)計(jì)全部有三篇文章(一、UI界面設(shè)計(jì),二、藍(lán)牙搜索配對(duì)連接實(shí)現(xiàn),三、藍(lán)牙連接聊天),這篇文章是:二、藍(lán)牙搜索配對(duì)連接實(shí)現(xiàn)。 課程1:Android Studio小白安裝教程,以及第一個(gè)Android項(xiàng)目案例“Hello World”的調(diào)試運(yùn)行 課程2:藍(lán)牙聊天App設(shè)計(jì)1:Android S

    2024年02月11日
    瀏覽(31)
  • Android studio(一)按鈕監(jiān)聽的三種方式

    第一種方法:public class Activity2 extends AppCompatActivity implements View.OnClickListener 設(shè)置監(jiān)聽后,用id進(jìn)行分別尋址 第二種方法:將implements寫在監(jiān)聽類上 第三種方法:由于新版似乎不允許button根據(jù)id用switch語句,所以可以改用textview 在對(duì)應(yīng)的布局文件里也需要為textview添加一個(gè)屬性

    2024年02月02日
    瀏覽(22)
  • 藍(lán)牙聊天App設(shè)計(jì)1:Android Studio制作藍(lán)牙聊天通訊軟件(UI界面設(shè)計(jì))

    藍(lán)牙聊天App設(shè)計(jì)1:Android Studio制作藍(lán)牙聊天通訊軟件(UI界面設(shè)計(jì))

    前言:藍(lán)牙聊天App設(shè)計(jì)全部有三篇文章(一、UI界面設(shè)計(jì),二、藍(lán)牙搜索配對(duì)連接實(shí)現(xiàn),三、藍(lán)牙連接聊天),這篇文章是一、UI界面設(shè)計(jì) 課程1:Android Studio小白安裝教程,以及第一個(gè)Android項(xiàng)目案例“Hello World”的調(diào)試運(yùn)行 課程2:藍(lán)牙聊天App設(shè)計(jì)1:Android Studio制作藍(lán)牙聊天通

    2024年02月02日
    瀏覽(36)
  • Android studio Flutter環(huán)境配置

    Android studio Flutter環(huán)境配置

    流程如下 1.前往下載網(wǎng)站下載所需的sdk flutter sdk下載地址 2.配置環(huán)境變量步驟 2.1:可以在用戶變量中添加變量(有些時(shí)候我沒有配置這兩條變量也沒問題) 2.2在用戶環(huán)境變量的Path中添加flutter bin路徑 3.cmd打開命令窗,運(yùn)行flutter doctor 可查看flutter sdk 信息,可以看到配置到環(huán)境

    2024年02月17日
    瀏覽(27)
  • Android Studio Flutter 開發(fā)配置

    Android Studio Flutter 開發(fā)配置

    近來比較閑,就研究下Flutter 開發(fā),在此記錄下studio 配置過程,時(shí)間是2023.7.19 1.首先下載?Flutter SDKhttps://storage.flutter-io.cn/flutter_infra_release/releases/stable/windows/flutter_windows_3.10.6-stable.zip 2.將壓縮包解壓,然后把其中的? flutter ?目錄整個(gè)放在你想放置 Flutter SDK 的路徑中(例如?

    2024年02月16日
    瀏覽(18)
  • 【Flutter】使用Android Studio 創(chuàng)建第一個(gè)flutter應(yīng)用。

    【Flutter】使用Android Studio 創(chuàng)建第一個(gè)flutter應(yīng)用。

    首先下載好 flutter sdk和 Android Studio。 FlutterSDK下載 Android Studio官網(wǎng) 我的是 windows。 查看flutter安裝環(huán)境。 如果沒有,自己在環(huán)境變量的path添加下flutter安裝路徑。 在將 Path 變量更新后,打開一個(gè)新的控制臺(tái)窗口,然后執(zhí)行下面的命令。如果它提示有任何的平臺(tái)相關(guān)依賴,那么

    2024年02月10日
    瀏覽(29)
  • Android studio進(jìn)入手機(jī)調(diào)試狀態(tài)

    Android studio進(jìn)入手機(jī)調(diào)試狀態(tài)

    首先usb插入電腦 手機(jī)打開開發(fā)者模式 進(jìn)入 點(diǎn)擊 就會(huì)在你的頁面顯示了

    2024年02月06日
    瀏覽(27)
  • Flutter 開發(fā)者工具 Android Studio 開發(fā)Flutter應(yīng)用

    Flutter 開發(fā)者工具 Android Studio 開發(fā)Flutter應(yīng)用

    Flutter 開發(fā)者工具 在 Android Studio 開發(fā)Flutter應(yīng)用 ?? Android Studio 版本更新 ?? Android Studio Check for Update Connection failed ? 解決方案 ?? ? ? ??? 編輯代碼,和查看問題 ?? ?Dart 插件 可以做到如下幾點(diǎn) :? 語法高亮顯示。 基于多種類型分析的代碼補(bǔ)全。 定位到類型的聲明(

    2024年02月15日
    瀏覽(121)
  • Android Studio(Flutter)常用快捷鍵

    快捷鍵 說明 Ctrl + Alt + M 抽取方法 Ctrl + Alt + W 抽取組件 Alt + Enter 包裹組件 Shift + F6 重命名 Ctrl + Alt + L 代碼格式化 Ctrl + Alt + O 刪除無用import Ctrl + X 刪除光標(biāo)所在行 Ctrl + D 復(fù)制一行代碼 Ctrl + C 復(fù)制 Ctrl + V 粘貼 Ctrl + Z 撤銷 Ctrl + / 注釋一行代碼 Ctrl + Shift + / 注釋一段代碼 Ctrl

    2024年02月02日
    瀏覽(26)
  • android studio使用Flutter Inspector調(diào)試布局

    android studio使用Flutter Inspector調(diào)試布局

    1、點(diǎn)擊anroid studio右側(cè)的Flutter Inspector按鈕 2、點(diǎn)擊展開布局右上角的‘Select Widget? Mode’,即可實(shí)現(xiàn)點(diǎn)擊相關(guān)節(jié)點(diǎn),真機(jī)上可以看到相關(guān)的方框 如下圖 ?

    2024年02月13日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包