您好,我尝试获取热点的ssid和密码。我在下面的方法中使用它,并且它在Android到8以下的工作中。 但在android 8.0中它的throw exption,我读到我需要一些前提 权限:android.permission.OVERRIDE_WIFI_CONFIG。 但我们无法获得这种要求
Method[] methods = m_wifiManager.getClass().getDeclaredMethods();
for (Method m : methods) {
if (m.getName().equals("getWifiApConfiguration")) {
try {
m_wifiConf = (WifiConfiguration) m.invoke(m_wifiManager);
message = m_wifiConf.SSID + '/' + m_wifiConf.preSharedKey + '/';
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
答案 0 :(得分:0)
不确定这是否与您的反思方法有关,但是从Android 8.1开始,您至少需要启用ACCESS_COARSE_LOCATION
个权限和位置服务才能使用getConnectionInfo()(请参阅{{3} }。
无论如何,这将无法让您访问wifi密码。
关于OVERRIDE_WIFI_CONFIG
权限,则为getScanResults(),
<permission android:name="android.permission.OVERRIDE_WIFI_CONFIG"
android:protectionLevel="signature|privileged" />
这意味着您的应用必须通过平台密钥签名或添加到特权defined中才能使用此权限。