【Android】【系統組件】調用任意操作系統界面組件

需求

有時我們需要調用系統設置界面來設置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);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章