是否可以从广播接收器启动意图?

时间:2011-01-28 20:52:39

标签: android google-maps android-intent broadcastreceiver

我正在尝试在包含地图坐标的短信到达时启动地图应用程序。我的广播接收器设置没有任何问题,据我所知,我需要做类似的事情:

                Uri uri = Uri.parse("geo:" + latitude  + "," + longitude +"?z=10");
                Intent mapintent = new Intent(android.content.Intent.ACTION_VIEW, uri);
                startActivity(mapintent);

但是Eclipse告诉我没有为BroadcastReceiver类型定义startActivity。我该如何开始这个意图?

3 个答案:

答案 0 :(得分:4)

startActivity()Context类上,您只需要使用Context的实例。你可以通过onReceive()方法获得一个。

答案 1 :(得分:2)

为了完整性:

正如mbaird(和Eugene)所说,使用OnCreate()中传递的活动的上下文 - 最终解决方案如下:

Uri uri = Uri.parse("geo:" + latitude  + "," + longitude +"?z=10");

Intent mapintent = new Intent(android.content.Intent.ACTION_VIEW, uri);

mapintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(mapintent);

答案 2 :(得分:1)

你应该在某处有一个Context的实例。 Context具有您可以使用的startActivity方法。