我正在尝试在包含地图坐标的短信到达时启动地图应用程序。我的广播接收器设置没有任何问题,据我所知,我需要做类似的事情:
Uri uri = Uri.parse("geo:" + latitude + "," + longitude +"?z=10");
Intent mapintent = new Intent(android.content.Intent.ACTION_VIEW, uri);
startActivity(mapintent);
但是Eclipse告诉我没有为BroadcastReceiver类型定义startActivity。我该如何开始这个意图?
答案 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方法。