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
- Android_开启应用
- android_开机启动--桌面开启
- Android_网络应用详解
- Android_完美退出应用方法
- android_短信广播接收者的应用
- android_添加服务给应用使用
- Android_监听自身应用被卸载
- Android_监听自身应用被卸载
- Android_如何查看应用签名信息
- 【android_温故知新】android 应用的资源
- Android_原型模式_项目应用
- Android_设置应用的Intent属性
- Android_蓝牙、GPS等综合应用
- 跨应用开启Service
- 开启应用调试属性
- android_应用开发之(优化布局层次结构)
- android_应用开发之(使用<include>标签重用布局)
- Android_实现页面跳转(intent的应用)及进阶
- android缓存数据到本地放在哪儿最好?
- jboss as7 访问ejb通用类
- bzoj-1123 BLO
- 如何快速掌握一门新技术/语言/框架
- 关于奇怪的并行进程分析
- Android_开启应用
- 黑马程序员Volley 图片加载相关源码解析
- 用html中img元素画横竖直线的方法
- Ubuntu安装谷歌中文输入法
- Struts 2 mapping interceptors to action
- 工厂方法
- Java 保留两位小数
- Android开发 打开文件 选择文件对话框
- Android 使用LeakCanary 检测内存泄露