Android_开启应用

来源:互联网 发布:淘宝怎么改价钱 编辑:程序博客网 时间:2024/06/05 03:34

一.开启一个应用程序的方法

1.开启一个应用程序等于启动该应用程序的第一个activity,而第一个开启的activity由下面的<intent-filter>决定

<intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" /></intent-filter>

        /** * 开启应用程序 要开启应用程序 等于开启应用程序第一个加载的activity(<intent-filter>) *  * @param packname *            要开启应用程序的包名 */private void startApplication(String packname) {PackageManager pm = getPackageManager();// Intent intent = new Intent();// intent.setAction("android.intent.action.MAIN");// intent.addCategory("android.intent.category.LAUNCHER");// // 获取所有可以启动的应用程序的IntentFilter// List<ResolveInfo>infos= pm.queryIntentActivities(intent,// PackageManager.GET_INTENT_FILTERS);Intent intentForPackage = pm.getLaunchIntentForPackage(packname);if (intentForPackage != null) {startActivity(intentForPackage);} else {Toast.makeText(AppManagerActivity.this, "不能开启当前的应用程序", 0).show();}}

二.上面启动应用程序的方法 需要知道包名,这个业务方法可以获取手机所有应用程序的信息

/** * 业务的方法 提供手机里安装的所有程序的信息 *  * @author 两点水 *  */public class AppInfoProvider {private static final String TAG = "AppInfoProvider";/** * 获取所有的安装程序信息 *  * @param context * @return */public static List<AppInfo> getAppInfos(Context context) {// 通过上下文获取package的管理者PackageManager pm = context.getPackageManager();// 通过管理者获取安装的程序的数据List<PackageInfo> packages = pm.getInstalledPackages(0);List<AppInfo> list = new ArrayList<AppInfo>();for (PackageInfo packinfo : packages) {AppInfo appinfo = new AppInfo();// packinfo 相当于一个应用程序的清单文件String packageName = packinfo.packageName;Drawable icon = packinfo.applicationInfo.loadIcon(pm);String name = packinfo.applicationInfo.loadLabel(pm).toString();int flags = packinfo.applicationInfo.flags;// 应用程序的标志信息Log.i(TAG, "应用程序的标志信息为:flags=" + flags);if ((flags & ApplicationInfo.FLAG_SYSTEM) == 0) { // 进行与运算 相同为1// 用户的程序appinfo.setUserApp(true);} else {// 系统程序appinfo.setUserApp(false);}if ((flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) == 0) {// 手机内存appinfo.setInRom(true);} else {// 外部存储appinfo.setInRom(false);}appinfo.setIcon(icon);appinfo.setName(name);appinfo.setPackname(packageName);list.add(appinfo);}return list;}}


个人总结记忆:

开启一个应用程序(startActivity(intentForPackage);),就需要开启应用程序的意图和开启应用程序的意图属性(getLaunchIntentForPackage(packname)),然而上面的方法是获取Package的相关信息,其实也是配置文件中的信息,所以我们要得到一个包的管理者(getPackageManager())。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信语音太难听怎么办 苹果x耳机用不了怎么办 10个月幼儿便秘怎么办 太阳晒了长斑怎么办 膀胱癌复发5回了怎么办 右肾囊肿有1cm,怎么办, 牙侧面有小小洞怎么办 喝酒喝的手抖怎么办 孩子在幼儿园不爱说话怎么办 孕妇吃了方头鱼怎么办 油炸的东西软了怎么办 跑步小腿疼怎么办 知乎 健身后小腿粗了怎么办 背心式内衣大了怎么办 运动文胸买大了怎么办 喝碳酸饮料胖了怎么办 奥鹏学费迟交了怎么办 侧乌鸦做不起来怎么办 发烧很难受怎么办 知乎 上班后奶水越来越少怎么办 孕晚期胖的厉害怎么办 怀孕后猛长胖怎么办啊 怀孕坐了按摩椅怎么办 怀孕8个月胎位不正怎么办 缓刑期间被打了怎么办 非法集资人跑了怎么办 玩游戏恶心想吐怎么办 中奖了填了信息怎么办 穿开衫老是溜肩怎么办 开车开久了腰疼怎么办 西药吃了胃难受怎么办 铁海棠叶子变黄怎么办 四季海棠根烂了怎么办 水银弄到皮肤上怎么办 头条指数下降了怎么办 下面长泡泡破了怎么办 期望工资说低了怎么办 机票买了后降价怎么办 刚谈对象没话说怎么办 微信好友太少怎么办 qq头像不显示了怎么办