參考鏈接:
https://greenify.uservoice.com/knowledgebase/articles/749142-how-to-grant-permissions-required-by-some-features
https://stackoverflow.com/questions/5034160/how-can-i-get-the-dreaded-write-secure-settings-permission-for-my-android-app
Android獲取USB調(diào)試狀態(tài)
獲取很簡單,適用于API 17+
//檢查USB調(diào)試狀態(tài)
public static boolean checkUSBDebug(){
if(Settings.Global.getInt( Context.getContentResolver(), Settings.Global.ADB_ENABLED, 0) == 1) {
return true;
} else {
return false;
}
}
Android打開USB調(diào)試開關(guān)
Settings.Global.putInt(Context.getContentResolver(), Settings.Global.ADB_ENABLED, 1);
需要添加權(quán)限,但是這權(quán)限僅系統(tǒng)應用有權(quán)限申請:
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
這里有個取巧的辦法能獲取權(quán)限,安裝apk后:adb shell執(zhí)行命令:
adb -d shell pm grant pkgname android.permission.WRITE_SECURE_SETTINGS
這樣就能實現(xiàn)當USB調(diào)試開關(guān)關(guān)掉之后,apk自動判斷并且去打開了
Android打開開發(fā)者選項開關(guān)
Settings.Global.putInt(Context.getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
Android獲取手機是否靜音,如果否,則設置靜音
//判斷手機是否處于靜音狀態(tài),如果非靜音則設置靜音
public static void checkAudio(Context context){
AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
switch (am.getRingerMode()) {
case AudioManager.RINGER_MODE_SILENT:
Log.i(TAG,"Silent mode");
break;
case AudioManager.RINGER_MODE_VIBRATE:
Log.i(TAG,"Vibrate mode");
am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
break;
case AudioManager.RINGER_MODE_NORMAL:
Log.i(TAG,"Normal mode");
am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
break;
}
}
Android獲取手機wifi狀態(tài),如果關(guān)閉,則打開
//判斷手機wifi是否掉線,如果掉線則強制重連
public static boolean checkWifiState(Context context){
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return true;
}
//打開wifi
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(true);
return false;
}
需要申請權(quán)限:
<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" />