日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 10+ wifi使用相关权限问题

發(fā)布時間:2023/12/20 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 10+ wifi使用相关权限问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

針對附近 Wi-Fi 設備的新運行時權限:Android 13 引入了?NEARBY_WIFI_DEVICES?權限,該權限屬于?NEARBY_DEVICES?權限組,適用于會管理設備與附近 Wi-Fi 接入點連接情況的應用。借助此權限,您可以更輕松地說明應用為何訪問附近的 Wi-Fi 設備;在以前的 Android 版本中,這類應用需要聲明?ACCESS_FINE_LOCATION?權限。

如果您的應用以 Android 13 為目標平臺并調用多個不同的 Wi-Fi API,則必須從用戶處獲得這項新權限。

注意:如果您的應用嘗試在未獲得適當權限的情況下調用 Wi-Fi API,則會發(fā)生?SecurityException。

受影響的用例

這項新權限會影響幾個不同的 Wi-Fi 用例,包括以下用例:

  • 查找或連接到附近的設備,如打印機或媒體投射設備。通過該工作流,您的應用可以完成以下類型的任務:
    • 通過帶外方式(例如通過 BLE)接收 AP 信息。
    • 使用僅限本地使用的熱點,通過 Wi-Fi 感知和連接功能發(fā)現(xiàn)并連接到設備。
    • 通過 Wi-Fi 直連發(fā)現(xiàn)和連接到設備。
  • 發(fā)起與已知 SSID(例如汽車或智能家居設備)的連接。
  • 開啟僅限本地使用的熱點。
  • 連接到附近的 Wi-Fi 感知設備。

該權限屬于“附近的設備”權限組

NEARBY_WIFI_DEVICES?權限是附近的設備權限組的一部分。此權限組在 Android 12(API 級別 31)中添加,還包含與藍牙和超寬帶相關的權限。如果您的應用請求此權限組中的多項權限,用戶會看到一個運行時對話框,其中會請求用戶批準您的應用訪問附近的設備。在系統(tǒng)設置中,用戶必須以組的形式啟用和停用附近的設備權限;例如,針對給定應用,用戶無法既停用其 Wi-Fi 訪問權限,但又保持啟用其藍牙使用權限。

堅定地聲明您的應用不會推導物理位置

在以 Android 13 為目標平臺時,請考慮您的應用是否會通過 Wi-Fi API 推導物理位置;如果不會,則應堅定聲明此情況。如需做出此聲明,請在應用的清單文件中將?usesPermissionFlags?屬性設為?neverForLocation,如以下代碼段所示。此過程類似于您聲明絕不會將藍牙設備信息用于獲取位置信息時的過程:

<manifest ...><uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES"android:usesPermissionFlags="neverForLocation" /><application ...>...</application> </manifest>

保持后向兼容性

由于?NEARBY_WIFI_DEVICES?權限僅適用于 Android 13 或更高版本,因此您應保留對?ACCESS_FINE_LOCATION?的所有聲明,以便在您的應用中提供向后兼容性。不過,只要您堅定聲明應用不會使用 Wi-Fi API 推導物理位置信息,就可以將此權限的最高 SDK 版本設為?32,如下以下代碼段所示:

<manifest ...><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"android:maxSdkVersion="32" /><application ...>...</application> </manifest>

請注意,某些 API 仍需要位置信息權限

有幾個 Wi-Fi API 仍然需要?ACCESS_FINE_LOCATION?權限才能獲取位置信息,就像它們在 12L 及更低版本上的一樣。示例包括?WifiManager?類中的以下方法:

  • getScanResults()
  • startScan()

檢查需要新權限的 API

如果您的應用以 Android 13 或更高版本為目標平臺,您必須聲明?NEARBY_WIFI_DEVICES?權限才能調用以下任何 Wi-Fi API:

  • WifiManager
    • startLocalOnlyHotspot()
  • WifiAwareManager
    • attach()
  • WifiAwareSession
    • publish()
    • subscribe()
  • WifiP2pManager
    • addLocalService()
    • connect()
    • createGroup()
    • discoverPeers()
    • discoverServices()
    • requestDeviceInfo()
    • requestGroupInfo()
    • requestPeers()
  • WifiRttManager
    • startRanging()

Wi-Fi 訪問工作流

圖 1 顯示了搭載 12L 或更低版本的設備上的 Wi-Fi 訪問工作流。請注意對?ACCESS_FINE_LOCATION?權限的依賴。

圖 1.?用于確定以 12L 或更低版本為目標平臺的應用是否可以獲取 Wi-Fi 信息的流程圖。

圖 2 顯示了搭載 Android 13 或更高版本的設備上的 Wi-Fi 訪問工作流(對于以 Android 13 或更高版本為目標平臺的應用)。請注意,只要您聲明應用不會根據(jù) Wi-Fi 設備信息推導物理位置信息,就不再需要聲明?ACCESS_FINE_LOCATION?權限:

?

圖 2.?用于確定以 Android 13 或更高版本為目標平臺的應用是否可以獲取 Wi-Fi 信息的流程圖。

?

總結

以上是生活随笔為你收集整理的Android 10+ wifi使用相关权限问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。