android 在应用中启动其他应用Intent的写法
2016-04-29 15:46
344 查看
解决了跳转到其他应用的各种问题。先上代码。
该方法主要参照了Launcher3中的代码,同时也参考了一些网友的代码。
launcher3的源代码如下:
若有错误请多多指教!
private Intent getAppIntent(String packageName) { Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); String mainAct = null; List<ResolveInfo> list = mPackageManager.queryIntentActivities(intent,PackageManager.MATCH_ALL); int count = list.size(); for(int i = 0;i<count;i++){ ResolveInfo rinfo = list.get(i); if (rinfo.activityInfo.packageName.equals(packageName)) { mainAct = rinfo.activityInfo.name; break; } } if (TextUtils.isEmpty(mainAct)) { return null; } intent.setComponent(new ComponentName(packageName, mainAct)); long serialNumber = -1; //17 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { UserManager mUserManager = (UserManager)getSystemService(Context.USER_SERVICE); mUserManager.getSerialNumberForUser(android.os.Process.myUserHandle()); } intent.putExtra("profile", serialNumber); return intent; }
该方法主要参照了Launcher3中的代码,同时也参考了一些网友的代码。
launcher3的源代码如下:
public static Intent makeLaunchIntent(Context context, LauncherActivityInfoCompat info, UserHandleCompat user) { long serialNumber = UserManagerCompat.getInstance(context).getSerialNumberForUser(user); return new Intent(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_LAUNCHER) .setComponent(info.getComponentName()) .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED) .putExtra(EXTRA_PROFILE, serialNumber); }
/** * Intent extra to store the profile. Format: UserHandle */ static final String EXTRA_PROFILE = "profile";
若有错误请多多指教!
相关文章推荐
- Android时间选择器、日期选择器实现代码
- Android系统中的蓝牙连接程序编写实例教程
- 第一次使用Android Studio 需要知道的配置
- Android系统的音量控制
- Android BroadcastReceiver生命周期分析
- Android Toolbar 使用
- Android的图表世界–如何使用MPAndroidChart
- Android实现下拉菜单Spinner效果
- Android系统中使用shareuserid获取系统权限的教程
- Android Studio 基础总结
- Android 自定义TabHost
- 如何分析解决Android ANR
- Android自定义样式对话框Dialog
- Android实现单项、多项选择操作
- android从自己的应用打开邮箱和QQ
- This Handler class should be static or leaks might occur Android
- EventBus的使用详解
- Android 乱码
- Android RecyclerView 使用完全解析 体验艺术般的控件
- [Android] Fragment 全解析