Berechtigung für den Zugriff auf WLAN-Geräte in der Nähe anfordern

Apps, die auf Android 13 (API-Level 33) oder höher ausgerichtet sind und WLAN-Verbindungen verwalten sollte das NEARBY_WIFI_DEVICES Laufzeitberechtigung Dieses Eine Berechtigung erleichtert es, den Zugriff einer App auf WLAN-Geräte in der Nähe zu begründen auf früheren Android-Versionen funktionierte, musste bei diesen Apps die ACCESS_FINE_LOCATION Berechtigung erteilen.

Berechtigung gehört zur Gruppe „Geräte in der Nähe“

Die Berechtigung NEARBY_WIFI_DEVICES ist Teil der Berechtigung Geräte in der Nähe Berechtigungsgruppe. Zu dieser in Android 12 (API-Level 31) hinzugefügten Gruppe gehören auch Berechtigungen in Bezug auf Bluetooth und Ultrabreitband. Wenn Sie Kombination von Berechtigungen aus dieser Berechtigungsgruppe, zeigt das System eine einzige Laufzeitdialogfeld und fordert den Nutzer auf, den Zugriff Ihrer App auf Geräte in der Nähe zu genehmigen. In den Systemeinstellungen muss der Nutzer die Geräte in der Nähe aktivieren und deaktivieren. Berechtigungen als Gruppe; Nutzer können beispielsweise den WLAN-Zugriff nicht deaktivieren, aber Für eine bestimmte App ist der Bluetooth-Zugriff aktiviert.

Behaupten Sie deutlich, dass Ihre App keinen physischen Standort ermittelt.

Wenn deine App auf Android 13 oder höher ausgerichtet ist, überlege dir, ob deine App ermittelt Standortinformationen von Wi-Fi APIs; Wenn nicht, sollten Sie sich um dies zu behaupten. Für diese Assertion setzen Sie das Attribut usesPermissionFlags auf neverForLocation in der Manifestdatei Ihrer App, wie im folgenden Code gezeigt: Snippet. Dieser Vorgang ist ähnlich wie bei der sicherstellen, dass keine Informationen über Bluetooth-Geräte zur Standortermittlung verwendet werden:

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

Für frühere Versionen und einige APIs ist die Berechtigung zur Standortermittlung erforderlich

Für mehrere Wi-Fi APIs ist die Berechtigung ACCESS_FINE_LOCATION erforderlich, auch wenn dein App auf Android 13 oder höher ausgerichtet. Beispiele: Methoden aus der Klasse WifiManager:

Da die Berechtigung NEARBY_WIFI_DEVICES nur auf Geräten mit Android 13 und höher sollten Sie alle Erklärungen für ACCESS_FINE_LOCATION um Abwärtskompatibilität in Ihrer App zu gewährleisten. Solange Ihre App nicht auf andere Weise genauen Standortinformationen, können Sie die maximale SDK-Version dieser Berechtigung auf 32 setzen, wie in den folgenden Code-Snippet hinzu:

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

Nach APIs suchen, die die Berechtigung erfordern

Wenn deine App auf Android 13 oder höher ausgerichtet ist, musst du die NEARBY_WIFI_DEVICES berechtigt, eine der folgenden Wi-Fi APIs aufzurufen:

Workflows für WLAN-Zugriff

Abbildung 1 zeigt den WLAN-Zugriffsworkflow auf ausgeführten Geräten. Android 13 oder höher, für Apps mit Ausrichtung auf Android 13 oder höher. Solange Sie versichern, dass Ihr ermittelt die App den physischen Standort nicht aus den WLAN-Geräteinformationen. muss die Berechtigung ACCESS_FINE_LOCATION jetzt deklariert werden:

<ph type="x-smartling-placeholder">
</ph>
Abbildung 1: Flussdiagramm um festzustellen, ob eine App auf Android 13 (API-Level 33) oder höher ausgerichtet ist auf WLAN-Informationen zugreifen kann.

Abbildung 2 zeigt den WLAN-Zugriffs-Workflow auf Geräten, die ausgeführt werden 12 L oder niedriger. Beachten Sie, dass Sie sich auf die Berechtigung „ACCESS_FINE_LOCATION“.

<ph type="x-smartling-placeholder">
</ph>
Abbildung 2: Flussdiagramm um zu ermitteln, ob eine App auf 12L (API-Level 32) oder niedriger ausgerichtet ist auf WLAN-Informationen zugreifen kann.