2011-01-28 54 views
1

我試圖在SMS到達時啓動地圖應用程序,其中包含地圖座標。我有我的廣播接收器設置有沒有問題,我的理解是,我需要做一些事情,如:是否可以從廣播接收機啓動意圖?

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

但是Eclipse是告訴我,startActivity沒有爲類型廣播接收器定義。我如何着手開始意圖?

回答

4

startActivity()Context類,你只需要使用Context的一個實例。你會得到一個通過onReceive()方法。

+0

我使用context.startActivity嘗試(intent),但是應用程序強制關閉java.lang.StringIndexOutOfBoundsException:String索引超出範圍:4錯誤導致:java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍:4 – Fuzzy 2011-01-28 21:06:33

1

你應該有一個周圍的上下文的實例。上下文有startActivity方法,您可以使用。

2

出於完整性:

由於mbaird(尤金)表示使用上下文從)在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);