【问题标题】:Launch app using package name使用包名启动应用程序
【发布时间】:2014-08-14 19:14:51
【问题描述】:

我正在尝试从我自己的 Android 应用程序中启动一个应用程序。我所做的是获取安装到设备中的应用程序的所有包名称并将它们存储到字符串数组中。然后使用列表视图,我尝试启动每个选定的应用程序。

为了创建一个新的意图来启动每个应用程序,我使用以下代码声称可以在 android 教程网站的多个帖子中工作:

Intent intent = packageManager.getLaunchIntentForPackage(packages[arg2]);

其中 packages 是我的表的名称,其中包含包名称,arg2 是列表视图中的选定项。

问题是,即使我检查 toast 消息,我也可以看到包名称是正确的,但 getLaunchIntentForPackage 始终为空,并且应用程序没有启动。

谢谢

【问题讨论】:

  • 显示更多代码。什么是 packages 数组,什么是 arg2?
  • 不完全确定,但似乎操作系统会阻止应用程序启动其他应用程序...除非它们来自同一组织并位于同一沙箱中。

标签: android null launcher


【解决方案1】:

尝试添加意图

final Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

【讨论】:

    【解决方案2】:

    试试这个:

    String pack[] = {"com.android.setting", "com.android.browser"};     
    try {
        Intent intent = getPackageManager().getLaunchIntentForPackage(pack[0]);
        startActivity(intent);
    } catch (Exception e) {
        // returns null if application is not installed
    }
    

    【讨论】:

    • 那只会启动浏览器,包的东西是什么?
    • 这是一个例子,因为我不知道你的包裹。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多