【问题标题】:Launch another app from android widget?从 android 小部件启动另一个应用程序?
【发布时间】:2011-07-25 22:13:04
【问题描述】:

好的,所以我想做的是创建一个小部件,当小部件被按下时,它会简单地启动另一个应用程序。然而,这些应用程序不是我创建的,即市场应用程序、浏览器和类似的东西。我已经设置了 AppWidgetProvider 并在清单中进行了所有更改以及所有这些事情。我只需要知道我必须添加到将这样做的类/Java 源文件中的内容。任何帮助表示赞赏,谢谢!

【问题讨论】:

标签: android widget launch


【解决方案1】:

尝试这样做:

String packageName = "com.package";
String className = "com.package.MainActivity";
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName(packageName, className));
startActivity(intent);

更新:

这看起来是一种更好的启动应用程序的方式:

PackageManager pm = getPackageManager();
try
{
    String packageName = "com.example.package";
    Intent launchIntent = pm.getLaunchIntentForPackage(packageName);
    startActivity(launchIntent);
}
catch (Exception e1)
{
}

【讨论】:

  • 我遇到了一些错误,但主要错误似乎是“startActivity 缺少返回类型”和“无法将意图解析为类型”我是开发新手,所以请注意我的“noobishness”,谢谢你的帮助。
  • 确保你有正确的包名和类名。另外,尝试将 startActivity(intent) 更改为 MyActivity.this.startActivity(intent)。如果这不起作用,我需要您向我展示当您输入值时代码的样子,因为我已将此代码放入我的应用程序中并且它可以正常工作。
  • 好的,我以为我已经成功了,但现在它在“intent.setComponent”处给了我一个错误,说“令牌“setComponent”的语法错误,=在这个令牌之后。”我该怎么办?谢谢。
  • 你能告诉我你的代码,包名和类名,这样我就可以告诉你为什么你会收到错误?
  • 我刚刚找到了另一种启动应用程序的方法,它看起来更干净、更正式。它在活动课程中工作,但我没有在服务中测试过它。我将代码放在更新部分的答案中。看看这是否有效。如果没有,请阅读我之前的评论。
猜你喜欢
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-11
相关资源
最近更新 更多