从android widget启动另一个应用程序?

从android widget启动另一个应用程序?,android,widget,launch,Android,Widget,Launch,好的,我想做的是创建一个小部件,当小部件被按下时,它将简单地启动另一个应用程序。但是,这些应用程序不是我创建的,即市场应用程序、浏览器等。我已经设置了AppWidgetProvider,并在清单中做了所有更改和所有这些事情。我只需要知道我必须向class/Java源文件中添加什么才能做到这一点。感谢您的帮助,谢谢 尝试这样做: String packageName = "com.package"; String className = "com.package.MainActivity"; In

好的,我想做的是创建一个小部件,当小部件被按下时,它将简单地启动另一个应用程序。但是,这些应用程序不是我创建的,即市场应用程序、浏览器等。我已经设置了AppWidgetProvider,并在清单中做了所有更改和所有这些事情。我只需要知道我必须向class/Java源文件中添加什么才能做到这一点。感谢您的帮助,谢谢

尝试这样做:

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”上的语法错误,=在这个令牌之后需要。”我该怎么办?谢谢。你能给我看一下你的代码,以及packagename和classname吗,这样我就可以告诉你为什么会出现错误了?我刚刚找到了另一种方法来启动一个应用程序,它看起来更干净、更正式。它在活动类中有效,但我还没有在服务中测试过它。我把代码放在更新部分的答案中。看看这是否有效。如果没有,请阅读我之前的评论。