android如何从应用程序进入设置的各个页面

2015-07-30 21:17:12来源:CSDN作者:JACKLIAO1人点击

  1. 调用Android系统“应用程序信息(Application Info)”界面
    大致如下:(以下信息来自这位大婶博客:http://blog.csdn.net/zhengzhiren/article/details/6159750),如果不想细看,直接调到后面,即可有现成的代码0_0。
    这里写图片描述
    到了这个页面,就可以做很多的事了,比如打开开机启动等等。
    那么如何进入这个页面呢?
    我们只要以android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS作为Action;“package:应用程序的包名”作为URI,就可以用startActivity启动应用程序信息界面了。代码如下:
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);  Uri uri = Uri.fromParts(SCHEME, packageName, null);  intent.setData(uri);  startActivity(intent);  

但是,在Android 2.3之前的版本,并没有公开相关的接口。
我们可以分别看到Android2.1和Android2.2的应用管理程序(ManageApplications.java)是如何启动InstalledAppDetails的:

     // utility method used to start sub activity     private void startApplicationDetailsActivity() {         // Create intent to start new activity         Intent intent = new Intent(Intent.ACTION_VIEW);         intent.setClass(this, InstalledAppDetails.class);         intent.putExtra(APP_PKG_NAME, mCurrentPkgName);         // start new activity to display extended information         startActivityForResult(intent, INSTALLED_APP_DETAILS);     }

而对于2.2与2.1常量APP_PKG_NAME的定义并不相同,在2.2中定义为”pkg”,在2.1中定义为”com.android.settings.ApplicationPkgName”
因此,对于2.1及以下版本,我们可以这样调用InstalledAppDetails:

Intent i = new Intent(Intent.ACTION_VIEW);                i.setClassName("com.android.settings","com.android.settings.InstalledAppDetails");i.putExtra("com.android.settings.ApplicationPkgName", packageName); startActivity(i);

对于2.2,只需替换上面putExtra的第一个参数为”pkg”。

综上,通用的调用“应用程序信息”的代码如下:

private static final String SCHEME = "package";/** * 调用系统InstalledAppDetails界面所需的Extra名称(用于Android 2.1及之前版本) */private static final String APP_PKG_NAME_21 = "com.android.settings.ApplicationPkgName";/** * 调用系统InstalledAppDetails界面所需的Extra名称(用于Android 2.2) */private static final String APP_PKG_NAME_22 = "pkg";/** * InstalledAppDetails所在包名 */private static final String APP_DETAILS_PACKAGE_NAME = "com.android.settings";/** * InstalledAppDetails类名 */private static final String APP_DETAILS_CLASS_NAME = "com.android.settings.InstalledAppDetails";/** * 调用系统InstalledAppDetails界面显示已安装应用程序的详细信息。 对于Android 2.3(Api Level * 9)以上,使用SDK提供的接口; 2.3以下,使用非公开的接口(查看InstalledAppDetails源码)。 *  * @param context *  * @param packageName *            应用程序的包名 */public static void showInstalledAppDetails(Context context, String packageName) {    Intent intent = new Intent();    final int apiLevel = Build.VERSION.SDK_INT;    if (apiLevel >= 9) { // 2.3(ApiLevel 9)以上,使用SDK提供的接口        intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);        Uri uri = Uri.fromParts(SCHEME, packageName, null);        intent.setData(uri);    } else { // 2.3以下,使用非公开的接口(查看InstalledAppDetails源码)        // 2.2和2.1中,InstalledAppDetails使用的APP_PKG_NAME不同。        final String appPkgName = (apiLevel == 8 ? APP_PKG_NAME_22                : APP_PKG_NAME_21);        intent.setAction(Intent.ACTION_VIEW);        intent.setClassName(APP_DETAILS_PACKAGE_NAME,                APP_DETAILS_CLASS_NAME);        intent.putExtra(appPkgName, packageName);    }    context.startActivity(intent);}
  1. 最后附上一些常用的设置描述,具体的说明都在android.provider.Settings.java这个类里面
    打开这些界面就非常的容易了:
//比如打开网络设置页面 Intent intent=null; //判断手机系统的版本  即API大于10 就是3.0或以上版本  if(android.os.Build.VERSION.SDK_INT>10){     intent = new    Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);}else{    intent = new Intent();    ComponentName component = new ComponentName("com.android.settings","com.android.settings.WirelessSettings");   intent.setComponent(component);          intent.setAction("android.intent.action.VIEW");   }context.startActivity(intent);-----------------华丽分割线----------------------------使用下面字段可以在软件中直接打开相应的系统界面  com.android.settings.AccessibilitySettings 辅助功能设置  com.android.settings.ActivityPicker 选择活动  com.android.settings.ApnSettings APN设置  com.android.settings.ApplicationSettings 应用程序设置  com.android.settings.BandMode 设置GSM/UMTS波段  com.android.settings.BatteryInfo 电池信息  com.android.settings.DateTimeSettings 日期和坝上旅游网时间设置  com.android.settings.DateTimeSettingsSetupWizard 日期和时间设置  com.android.settings.DevelopmentSettings 应用程序设置=》开发设置  com.android.settings.DeviceAdminSettings 设备管理器  com.android.settings.DeviceInfoSettings 关于手机  com.android.settings.Display 显示——设置显示字体大小及预览  com.android.settings.DisplaySettings 显示设置  com.android.settings.DockSettings 底座设置  com.android.settings.IccLockSettings SIM卡锁定设置  com.android.settings.InstalledAppDetails 语言和键盘设置  com.android.settings.LanguageSettings 语言和键盘设置  com.android.settings.LocalePicker 选择手机语言  com.android.settings.LocalePickerInSetupWizard 选择手机语言  com.android.settings.ManageApplications 已下载(安装)软件列表  com.android.settings.MasterClear 恢复出厂设置  com.android.settings.MediaFormat 格式化手机闪存  com.android.settings.PhysicalKeyboardSettings 设置键盘  com.android.settings.PrivacySettings 隐私设置  com.android.settings.ProxySelector 代理设置  com.android.settings.RadioInfo 手机信息  com.android.settings.RunningServices 正在运行的程序(服务)  com.android.settings.SecuritySettings 位置和安全设置  com.android.settings.Settings 系统设置  com.android.settings.SettingsSafetyLegalActivity 安全信息  com.android.settings.SoundSettings 声音设置  com.android.settings.TestingSettings 测试——显示手机信息、电池信息、使用情况统计、Wifi information、服务信息  com.android.settings.TetherSettings 绑定与便携式热点  com.android.settings.TextToSpeechSettings 文字转语音设置  com.android.settings.UsageStats 使用情况统计  com.android.settings.UserDictionarySettings 用户词典  com.android.settings.VoiceInputOutputSettings 语音输入与输出设置  com.android.settings.WirelessSettings 无线和网络设置

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台