2011-01-28 6 views
1

지도 좌표가 포함 된 SMS가 도착하면 매핑 응용 프로그램을 시작하려고합니다. 내 브로드 캐스트 리시버가 아무런 문제없이 설정하고 난 그것을 이해 내가 좋아하는 뭔가를 할 필요가 :브로드 캐스트 수신기에서 인 텐트를 시작할 수 있습니까?

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

하지만 이클립스는 startActivity를이 유형의 브로드 캐스트 리시버에 대해 정의되지 않은 내게 말하고있다. 의도를 시작하려면 어떻게해야합니까?

답변

4

startActivity()Context 클래스에 있으며, Context 인스턴스 만 사용해야합니다. 당신은 onReceive() 방법으로 통과 한 것을 얻습니다.

+0

(intent)하지만 응용 프로그램 강제는 java.lang.StringIndexOutOfBoundsException으로 종료됩니다. 문자열 인덱스가 범위를 벗어남 : 4 오류 : java.lang.StringIndexOutOfBoundsException : 문자열 인덱스가 범위를 벗어났습니다. 4 – Fuzzy

+0

전체 스택 추적을 게시하십시오. 코드를 보여주세요. –

+0

그 문제를 해결했습니다. 또한 mapintent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK)를 추가해야합니다. – Fuzzy

1

어딘가에 Context 인스턴스가 있어야합니다. 컨텍스트에는 사용할 수있는 startActivity 메서드가 있습니다.

완성도를 들어
2

:

mbaird (유진)가에서 OnCreate (전달 활동)에서 컨텍스트를 사용 말했듯이 - 같은 최종 솔루션 보인다 : 나는 Context.startActivity에 사용하여 시도했다

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); 
관련 문제