Quando ho provato ad abilitare il tethering wifi dal seguente codice che genera l'eccezioneAndroid 6.0.1 non poteva consentire WiFi Hotspot programmazione
java.lang.reflect.InvocationTargetException a java.lang.reflect.Method .invoke (Native Method) in com .....
.... non è stato concesso questa autorizzazione: android.permission.WRITE_SETTINGS
Ma questo funziona bene in Android 6.0 e versioni di seguito. E anche provato a dare android.permission.WRITE_SETTINGS troppo.
Esiste qualche limitazione nell'accesso a wifiAP in Android 6.1?
Seguire ho allegato il codice di esempio che ho utilizzato per abilitare hotspot.
WifiConfiguration netConfig = new WifiConfiguration();
netConfig.SSID = ssId;
netConfig.preSharedKey = passkey;
netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
try {
boolean apstatus = (Boolean) method.invoke(wifiManager, netConfig, true);
for (Method isWifiApEnabledmethod : wmMethods) {
if (isWifiApEnabledmethod.getName().equals("isWifiApEnabled")) {
while (!(Boolean) isWifiApEnabledmethod.invoke(wifiManager)) {}
for (Method method1 : wmMethods) {
if (method1.getName().equals("getWifiApState")) {
int apstate;
apstate = (Integer) method1.invoke(wifiManager);
Log.i(TAG, "Apstate ::: " + apstate);
}
}
}
}
if (apstatus) {
Log.d(TAG, "Access Point created");
} else {
Log.d(TAG, "Access Point creation failed");
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
che dovevo fare qualcosa di simile per la scansione Bluetooth, impostare l'SDK di destinazione un po 'indietro ed emula il vecchio funzionalità, e non ti ingombrano con la nuovo modo di fare le cose. – stu