需求
有時我們需要調用系統設置界面來設置WIFI,設置功能權限,設置後臺運行等功能
但並不是每個機型,每個設置界面的類名我們都知道,這時我們就需要想辦法獲取這些界面的類名
原理
通過ADB指令,可以獲取手機當前運行界面的包名和類名
利用這個原理,我們進入到對應的操作系統設置界面後,就可以通過ADB指令獲取對應界面的類名
執行ADB指令
確保ADB程序所在目錄已經被加入到Path系統變量裏面
手機打開對應的設置界面,然後在AndroidStudio的Terminal面板中執行以下指令
adb shell dumpsys window | findstr mCurrentFocus
然後我們就可以得到類似以下格式的包名和類名
mCurrentFocus=Window{3425516 u0 com.android.settings/com.android.settings.Settings$LocationSettingsActivity}
調用系統界面組件
通過包名和類名,我們就可以很輕鬆地啓動Activity了
Intent intent = new Intent();
ComponentName componentName = new ComponentName("com.android.settings", "com.android.settings.Settings.LocationSettingsActivity");
intent.setComponent(componentName);
context.startActivity(intent);