【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);

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