2022年2月12日 星期六

Android Studio - Bluetooth 藍牙獲取許可權(三十八)

Android Studio - Bluetooth 藍牙獲取許可權(三十八):

首先第一步要獲取藍牙許可權和位置許可權,在 Android 6.0(API 23) 以上不僅需要靜態添加許可權(在 AndroidMainfest.xml 中配置),而且還需要在程式中動態的獲取許可權,以下是部分需要動態獲取的許可權。

Android Studio Bluetooth藍牙獲取許可權
注意:如果應用程式請求在 AndroidManifest.xml 中列出的危險許可權,並且應用程式已經在同一許可權組中具有另一個危險許可權,系統會立即授予許可權,而不會與用戶進行任何交互,。例如,如果一個應用程式先前已經請求並被授予 ACCESS_FINE_LOCATION 許可權,然後它請求 ACCESS_COARSE_LOCATION (同屬於位置一組),系統會立即授予該許可權,不會再彈出許可權授予詢問的對話方塊。

靜態添加 AndroidManifest.xml:

<manifest ... >

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

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


  <!-- If your app targets Android 9 or lower, you can declare ACCESS_COARSE_LOCATION instead. -->

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

  ...

</manifest>


MainActivity.java 動態添加:

public void requestPower() {

  

    //判斷是否已經賦予許可權

        if (ContextCompat.checkSelfPermission(this,

                Manifest.permission.上表許可權字元)

                != PackageManager.PERMISSION_GRANTED) {

           //如果應用之前請求過此許可權但用戶拒絕了請求,此方法將返回 true

            if (ActivityCompat.shouldShowRequestPermissionRationale(this,

                    Manifest.permission.上表許可權字元)) {

   //這裡可以寫個對話方塊之類的項向用戶解釋為什麼要申請許可權,並在對話方塊的確認鍵後續再次申請許可權.它在使用者選擇"不再詢問"的情況下返回false

            } else {

            //申請許可權,字串陣列內是一個或多個要申請的許可權,1是申請許可權結果的返回參數,在onRequestPermissionsResult可以得知申請結果

                ActivityCompat.requestPermissions(this,

                        new String[]{

   Manifest.permission.上表許可權字元,}, 1);

            }

        }

    }


參考網址:
※ 藍牙許可權限

2022年 2月 12日(Sat)天氣報告
氣溫:38.0°F / 3.0°C @ 07:00
風速:每小時 11公里
降雨機會:2%
相對濕度:百分之 90%
天氣:大致晴朗

沒有留言:

張貼留言