启动第三方或系统的应用

来源:互联网 发布:0day扫描什么端口 编辑:程序博客网 时间:2024/06/05 05:29
public class OpenAppUtils {    /**     * 已知包名和启动类     *     * @param context     * @param packageName     * @param className     */    public static void startApp(Context context, String packageName, String className) {        Intent intent = new Intent(Intent.ACTION_MAIN);        //intent.addCategory(Intent.CATEGORY_LAUNCHER);        ComponentName cn = new ComponentName(packageName, className);        intent.setComponent(cn);        if (context instanceof Activity) {            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        } else {            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        }        context.startActivity(intent);    }    /**     * 已知包名和启动类     *     * @param context     * @param packageName     * @param className     * @param args     */    public static void startApp(Context context, String packageName, String className, Bundle args) {        Intent intent = new Intent(Intent.ACTION_MAIN);        //intent.addCategory(Intent.CATEGORY_LAUNCHER);        ComponentName cn = new ComponentName(packageName, className);        intent.setComponent(cn);        if (context instanceof Activity) {            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        } else {            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        }        intent.putExtras(args);        context.startActivity(intent);    }    /**     * 只知包名不知类名     * @param context     * @param packageName     */    public static void openApp(Context context, String packageName) {        PackageManager pm = context.getPackageManager();        PackageInfo pi = null;        try {            pi = pm.getPackageInfo(packageName, 0);        } catch (PackageManager.NameNotFoundException e) {            e.printStackTrace();        }        Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);        resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);        resolveIntent.setPackage(pi.packageName);        // 返回符合条件的ACTIVITY集合        List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0);        // 只要符合条件就启动,太多了就不知道启动哪个了        ResolveInfo ri = apps.iterator().next();        if (ri != null) {            String packageNameTemp = ri.activityInfo.packageName;            String classNameTemp = ri.activityInfo.name;            Intent intent = new Intent(Intent.ACTION_MAIN);            intent.addCategory(Intent.CATEGORY_LAUNCHER);            if (context instanceof Activity) {                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            } else {                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            }            ComponentName cn = new ComponentName(packageNameTemp, classNameTemp);            intent.setComponent(cn);            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 无线和网络设置     * @param context     */    public static void openSetting(Context context){        //判断手机系统的版本  即API大于10 就是3.0或以上版本        if(android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.GINGERBREAD_MR1){            Intent intent = new Intent(android.provider.Settings.ACTION_SETTINGS);            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            context.startActivity(intent);        }else{            Intent intent = new Intent();            ComponentName component = new ComponentName("com.android.settings", "com.android.settings.Settings");            intent.setComponent(component);            intent.setAction("android.intent.action.VIEW");            context.startActivity(intent);        }    }    /**     * 打开无线和网络设置界面     * @param context     */    public static void openNetSetting(Context context){        //判断手机系统的版本  即API大于10 就是3.0或以上版本        if(android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.GINGERBREAD_MR1){            Intent intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            context.startActivity(intent);        }else{            Intent 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);        }    }    /**     * 打开wifi设置界面     * @param context     */    public static void openWifiSetting(Context context){        //判断手机系统的版本  即API大于10 就是3.0或以上版本        if(android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.GINGERBREAD_MR1){            Intent intent = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            context.startActivity(intent);        }else{            Intent intent = new Intent();            ComponentName component = new ComponentName("com.android.settings", "com.android.settings.WifiSettings");            intent.setComponent(component);            intent.setAction("android.intent.action.VIEW");            context.startActivity(intent);        }    }    /**     * 打开蓝牙设置界面     * @param context     */    public static void openBluetoothSetting(Context context){        //判断手机系统的版本  即API大于10 就是3.0或以上版本        if(android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.GINGERBREAD_MR1){            Intent intent = new Intent(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS);            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            context.startActivity(intent);        }else{            Intent intent = new Intent();            ComponentName component = new ComponentName("com.android.settings", "com.android.settings.BluetoothSettings");            intent.setComponent(component);            intent.setAction("android.intent.action.VIEW");            context.startActivity(intent);        }    }    /**     * 打开关于界面     * @param context     */    public static void openAboutSetting(Context context){        Intent intent = new Intent(android.provider.Settings.ACTION_DEVICE_INFO_SETTINGS);        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        context.startActivity(intent);    }    /**     * 打开拨打电话界面     * @param context     */    public static void openCall(Context context){        Intent intent = new Intent();        //系统默认的action,用来打开默认的电话界面        intent.setAction(Intent.ACTION_CALL);        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        //需要拨打的号码        //intent.setData(Uri.parse("tel:"+telephone));        context.startActivity(intent);    }    /**     * 打开发送短信界面     * @param context     */    public static void openSMS(Context context){        Intent intent = new Intent();        //系统默认的action,用来打开默认的电话界面        intent.setAction(Intent.ACTION_SENDTO);        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        //需要发短息的号码        //intent.setData(Uri.parse("smsto:"+telephone));        context.startActivity(intent);    }    /**     * 打开电池状态信息     * @param context     */    public static void startBatteryStatus(Context context){        Intent intent = new Intent();        ComponentName cm = new ComponentName("com.android.settings", "com.android.settings.BatteryInfo");        intent.setComponent(cm);        intent.setAction("android.intent.action.VIEW");        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        context.startActivity(intent);    }    /**     * 打开一些设置     * @param context     * @param action     */    public static void openToolsUI(Context context, String action){        Intent intent = new Intent();        ComponentName component = new ComponentName("com.android.settings", action);        intent.setComponent(component);        intent.setAction("android.intent.action.VIEW");        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        context.startActivity(intent);    }    /**     * 打开一些设置     * @param context     * @param action     */    public static void openToolsUI2(Context context, String action){        Intent intent = new Intent(action);        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        context.startActivity(intent);    }}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 怀孕了左侧卵巢囊肿怎么办 婴儿的肚脐出血怎么办 老鼠钻进肚子里怎么办 指尖陀螺上油了怎么办 荧光瓶不怎么亮怎么办? 指尖陀螺沙沙响怎么办 手指陀螺转不快怎么办 房秒借回访没接怎么办 汽车大本丢了怎么办 脚趾头烂了流脓怎么办 下巴长闭口粉刺怎么办 产后头脑不清醒怎么办 艾谱保险柜没电打不开怎么办 欧美特保险柜打不开怎么办 保险柜密码正确打不开怎么办 幼犬突然不吃食怎么办 凉了胃不舒服怎么办 玩游戏心态不好怎么办 玩游戏心态爆炸怎么办 三星s6有点卡怎么办 三星s6信号不好怎么办 安装软件未安装怎么办 卖房协议贷款怎么办 小孩儿腿上疱疹怎么办 母牛粪便稀软怎么办 信鸽粮食长虫子怎么办 天刀t7出来t4怎么办 停车台阶太高怎么办 仓鼠半夜不睡觉怎么办 做事情特别纠结怎么办 同事之间说错话怎么办 孩子毛躁爱动怎么办 儿子裸辞国企怎么办 做事情容易着急怎么办 同事之间不说话怎么办 不能耐心做事情怎么办 做事死板不灵活怎么办 脑袋不灵活死板怎么办 做事情没有长兴怎么办 孩子动不动就哭怎么办 被保险公司拒保怎么办