Android开发中在有些需求,需要开启系统中特定界面,那么我们就得配置开启activity的intent的信息,并做相应操作。
一、一般情况
1、首先我们需要拿到intent相关信息,打开cmd命令窗口,输入adb shell 再输入logcat | grep “ActivityManager” 进行抓取ActivityManager输出信息,手动跳到目标界面中并查看cmd窗口得到相关信息如:
ActivityManager: START u0 {act=android.intent.action.MAIN cmp=com.android.phone/.settings.MobileNetworkSettings (has extras)} from uid 1000 on display 0
2、配置开启activity的intent信息
Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
intent.setComponent(new ComponentName("com.android.phone","com.android.phone.settings.MobileNetworkSettings"));
startActivity(intent);
二、开启Homesetting界面(这个是直接通过命令的方式打开特定的界面,转化为代码的形式)
通过命令开启Homesetting界面
adb shell am start -a android.settings.HOME_SETTINGS
转化为代码配置intent信息
Intent intent = new Intent(Settings.ACTION_HOME_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
三、开启特定界面,有些手机比较特殊如华为honor
1、通过cmd中adb命令抓取界面信息
07-21 16:34:22.243 1310 1334 I ActivityManager: Displayed com.android.settings/.Settings$PreferredListSettingsActivity: +207ms
2、转化为代码开启界面
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.Settings$PreferredListSettingsActivity"));
startActivity(intent);
总结:以上只是一个开启界面的方法,如果想要打开某个特定界面的话,需要配置各种手机,适配不同的系统,因为不同的手机厂商对包名和类名做了不同的修改,需要找不同手机通过cmd的adb命令抓相关信息来,写适配代码。