0

我想我遇到了权限问题,无法从连接中获取 de SSID。

我试过这样:

WifiManager wifiManager = (WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVICE);

WifiInfo info = wifiManager.getConnectionInfo();
String ssid  = (info).getSSID();
TextView ssid_name = findViewById(R.id.SSID_name);
ssid_name.setText(ssid);

这样

ConnectivityManager cm = (ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();

if (info != null && info.isConnected()) {
    String ssid = info.getExtraInfo();
    TextView ssid_name = findViewById(R.id.SSID_name);
    ssid_name.setText(ssid);
}

但我仍然得到<unknown ssid>

在清单中我得到了这个权限

<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" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
4

1 回答 1

0

这就是问题所在。必须向用户明确请求权限

    ActivityCompat.requestPermissions(this,
            new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
            PERMISSIONS_ACCESS_FINE_LOCATION);
    ActivityCompat.requestPermissions(this,
            new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
            PERMISSIONS_ACCESS_COARSE_LOCATION);
    ActivityCompat.requestPermissions(this,
            new String[]{Manifest.permission.ACCESS_WIFI_STATE},
            PERMISSIONS_ACCESS_WIFI_STATE);
    ActivityCompat.requestPermissions(this,
            new String[]{Manifest.permission.INTERNET},
            PERMISSIONS_INTERNET);
于 2019-10-24T14:58:45.120 回答