Android访问系统或者其他程序
来源:互联网 发布:淘宝客昵称怎么修改 编辑:程序博客网 时间:2024/06/05 17:12
Android 开发有时需要在一个应用中启动另一个应用。
如:调用插件,访问系统默认应用。
访问非系统程序
访问的Activity必须配置该exported属性为true,即允许其他程序启动该Activity。
android:exported=”true”
示例:
<activity android:name=".MainActivity" android:exported="true">//允许其他程序启动该Activity <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
通过包名访问程序主Activity
如果知道我们程序的包名,则可以用如下代码来启动:
Intent intent = getPackageManager().getLaunchIntentForPackage("com.activitylifecycledemo");//包名 if (intent == null) { Toast.makeText(this, "程序不存在!", Toast.LENGTH_LONG).show(); } else { intent.addCategory(Intent.CATEGORY_LAUNCHER);//可省略 intent.setAction(Intent.ACTION_MAIN);//可省略 startActivity(intent); }
或者:
PackageInfo pi = null; try { pi = getPackageManager().getPackageInfo("com.activitylifecycledemo", 0); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null); resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER); resolveIntent.setPackage(pi.packageName); PackageManager pm = getPackageManager(); List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0); ResolveInfo ri = apps.iterator().next(); if (ri != null) { String packageName = ri.activityInfo.packageName; String className = ri.activityInfo.name;//获取主Activity名 Intent intent = new Intent(); intent.addCategory(Intent.CATEGORY_LAUNCHER);//可省略 intent.setAction(Intent.ACTION_MAIN);//可省略 ComponentName cn = new ComponentName(packageName, className); intent.setComponent(cn); startActivity(intent); }
- 调用这两个方法程序会通过包名自动访问入口的Activity。
- 第二个方法可以获取主Activity名。
通过包名访问程序非主Activity
如果我们知道程序的包名和要访问的Activity名,则可以用如下代码来启动:
Intent intent = new Intent(); intent.addCategory(Intent.CATEGORY_LAUNCHER);//可省略 intent.setAction(Intent.ACTION_MAIN);//可省略 ComponentName cn = new ComponentName("com.activitylifecycledemo", "com.activitylifecycledemo.SecondActivity");//访问的Activity名 intent.setComponent(cn); startActivity(intent);
在知道主Activity名的情况下,以上方法也可访问主Activity。
访问系统设置
Intent intent = new Intent(Settings.*********);//系统设置名 startActivity(intent);
更多系统设置名请点击:
http://blog.csdn.net/demonliuhui/article/details/51440227
访问系统默认程序
http://blog.csdn.net/xubright/article/details/8704873
http://www.open-open.com/lib/view/open1384349405211.html
0 0
- Android访问系统或者其他程序
- Android获取系统文件目录,让程序访问其他程序的/data/data下的私有文件
- SQLSERVER2000 不能被JAVA程序或者其他主机的SQLSERVER客户端访问的问题
- 【Creator】访问节点或者其他组件
- android系统级别硬件访问服务程序
- android 程序防止被360或者系统给kill掉
- android 程序防止被360或者系统给kill掉
- android 程序防止被360或者系统终止
- android 调用其他程序
- android 调用其他程序
- android 调用其他程序
- Android 打开其他程序
- 使其他主机访问服务器或者本机的Mysql
- 【Android】安卓学习笔记之用内容提供器访问其他程序中的数据
- HttpClient访问其他系统接口使用详解
- Android 应用home键,来电或者其他方式进入后台运行,再次进入程序需要重新登录问题
- c# 调用c++dll挂钩其他程序线程或者进程
- 其他程序中禁止或者自动下拉状态栏
- Java模拟实现银行系统
- H5的新特性及部分API详解
- 通过MyCAT中间件实现读写分离
- udp与tcp的区别
- Git常用命令及常用操作总结
- Android访问系统或者其他程序
- JPA集成MyCAT实现读写分离
- 链式队列的实现
- Hibernate的关联映射,数据表的关联
- Gap Statistic 间隔统计量
- Java反射机制详解
- hive 排序函数
- 常见的几种页面布局方式
- JQuery 和JS 对Form表单验证和输入框验证