Android中从一个应用中启动另外的应用的实现方式
来源:互联网 发布:大排畸数据看男女准吗 编辑:程序博客网 时间:2024/06/05 09:45
核心代码如下
1. 第一种,知道应用程序的包名和启动的Activity的类名
Intent intent = new Intent(); ComponentName cn = new ComponentName("com.example.test03", "com.example.test03.IntentActivity"); intent.setComponent(cn);intent.setAction(Intent.ACTION_VIEW);startActivity(intent);
2. 第二种 只知道应用的包名
Intent launchIntentForPackage = this.getPackageManager().getLaunchIntentForPackage("com.example.test03");this.startActivity(launchIntentForPackage);
3. 第三种 知道应用的包名和启动的Activity的类名,但是这个Activity类不是应用程序的入口的Activity
Intent intent = new Intent(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_LAUNCHER);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);ComponentName cn = new ComponentName("com.example.test03", "com.example.test03.IntentActivity");intent.setComponent(cn);intent.setAction(Intent.ACTION_VIEW);startActivity(intent);
==特别注意==
++如果要启动的类或者Activity不是应用的入口Activity,使用第一种方法,就会出现如下错误++
E/AndroidRuntime(3594): Caused by: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.VIEW cmp=com.example.test03/.IntentActivity } from ProcessRecord
我们可以看到这个错误不是平时简单的看到的那种缺少系统权限的操作,而是权限拒绝的意思。
所以如何解决?
有如下两种解决方法:
1.代码设置
Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER);
2.清单文件中进行配置,加一个exported的属性
<activity android:name="com.example.test03.IntentActivity" android:exported="true"></activity>
为什么我们的入口Activity不需要设置这个属性,因为在我们设置了入口activity设置了Action和category这两个属性,相当于是设置exported的属性为true。所以在入口的Activity中不需要进行设置这个属性
阅读全文
0 0
- Android中从一个应用中启动另外的应用的实现方式
- 从应用中启动另外的应用
- 从应用中启动另外的应用
- 从一个应用中启动另外一个应用
- 在Android中启动另外一个应用
- Android 在一个应用中如何启动另外一个已安装的应用!!!
- Android 在一个应用中如何启动另外一个已安装的应用
- Android 在一个应用中如何启动另外一个已安装的应用
- Android 在一个应用中如何启动另外一个已安装的应用
- Android 在一个应用中如何启动另外一个已安装的应用!!!
- Android 在一个应用中如何启动另外一个已安装的应用!!!
- Android:在一个应用中启动另外一个已安装的应用
- Android 在一个应用中如何启动另外一个已安装的应用!!!
- Android:在一个应用中启动另外一个已安装的应用
- Android 在一个应用中如何启动另外一个已安装的应用!!!
- 10.Android在一个应用中启动另外一个应用
- Android中 一个应用启动另外一个应用一
- Android中从service中向另外一个应用包跳转的问题
- 【原】excel 表之间做差的java实现
- MFC|ListCtrl中InsertColumn后标题不显示
- mongodb的安装
- Android中ViewPager显示3个条目及滑动动画
- spark学习-60-源代码:ContextCleaner清理器
- Android中从一个应用中启动另外的应用的实现方式
- PopupMenu、PopupWindow的使用
- 【笔记-C++】 多态
- Ormlite的简单使用详解
- Android中导入项目常见错误
- Echart在Android中的简单使用
- 查询购物车---二级列表实现
- RxPermissions使用详解
- ViewAnimationUtils的使用详解