Ich entwickle eine App, um WLAN-Zugangspunkte zu überprüfen.Android WifiManager getScanResult beschwert sich ACCESS_COARSE_LOCATION oder ACCESS_FINE_LOCATION Erlaubnis, obwohl die Berechtigung erklärt wurde
Ich erhalte den Fehler "java.lang.SecurityException: Brauche ACCESS_COARSE_LOCATION oder ACCESS_FINE_LOCATION Erlaubnis, Scan-Ergebnisse zu erhalten" bei wifiManager.getScanResults(), obwohl ich diese Berechtigungen bereits deklariert habe.
Haupttätigkeit
public class MainActivity extends AppCompatActivity {
WifiManager wifiManager;
String[] wifis;
WifiReceiver wifiReceiver;
ListView wifiListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wifiListView = (ListView) findViewById(R.id.wifi_list);
wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifiReceiver = new WifiReceiver();
wifiManager.startScan();
}
protected void onPause() {
unregisterReceiver(wifiReceiver);
super.onPause();
}
protected void onResume() {
registerReceiver(wifiReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
super.onResume();
}
private class WifiReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
List<ScanResult> wifiScanList = wifiManager.getScanResults();
wifis = new String[wifiScanList.size()];
for (int i = 0; i < wifiScanList.size(); i++) {
wifis[i] = wifiScanList.get(i).toString();
}
wifiListView.setAdapter(new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, wifis));
}
}
manifest
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sample">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Ich bin auf SDK 6.0
Ich beobachtete ähnliche question, aber Lösung gilt nicht, da ich bereits die Erlaubnis erklärt.
Wer weiß, was Problem sein könnte? Vielen Dank.
Versuchen Sie, Ihre IDE neu zu starten. –
Versuchen Sie sauber und bauen – sean
versuchte IDE neu starten, App deinstallieren, Projekt löschen, Projekt erstellen, immer noch gleichen Fehler – kevin0228ca