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:
WifiManager
WifiAwareManager
WifiAwareSession
WifiP2pManager
WifiRttManager
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:
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
“.