2012-02-17 7 views
2

나는 BroadcastReceiver에 발신 전화의 전화 번호 앞에 접두사를 추가하고 사용자가 접두사를 추가했습니다.Activity에서 BroadcastReceiver로 데이터 전달하기

접두어 (문자열 변수)를 BroadcastReceiver으로 전달할 수있는 방법이 있습니까?

내 앱이 죽은 후에는 사용자가 추가하고 싶은 접두사로 계속 작동합니다. 즉, BroadcastReceiver입니다.

이것은

PackageManager pm = getApplicationContext().getPackageManager(); 
ComponentName componentName = new componentName(MyActivity.this,MyBroadcastReceiver.class); 
pm.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP); 

이에 대한 제발 도와주세요 레지스터 BroadcastReceiver 내 코드입니다.

답변

4

의도을 통해 당신은 다음과 같이 할 수 -

합격 클래스 - 클래스받은

Intent i = new Intent(passing.this, received.class); 
Bundle b = new Bundle(); 
b.putString("keyvalue", "yourprefixvalue"); 
i.putExtras(b); 
startActivity(i); 

- 방송 수신기 클래스에서

onReceive 방법과 의도 인수를 갖는이 포함되어 있습니다. 따라서 번들에서 결과 값을 가져 오는 데 사용할 수 있습니다.

@Override 
public void onReceive(Context context, Intent intent) 
{ 
    String result = intent.getString("keyvalue"); 
    // your method 
} 

이런 값을 내 BroadcastReceiver 클래스에 전달했습니다. // GetMessage()

+0

당신의 답변에 감사드립니다. 그러나, 나는 여전히 내 방송 수신기를 활동으로 시작하지 않는다는 문제가있다. 나는 그것을 가능하게하기 위해'PackageManager'를 사용했다. 이것은 내 앱이 죽은 경우에도 작동합니다. – PhatHV

+0

죄송합니다. 나는 그걸로 일하지 않았다. 그래서 나는 아무것도 모른다. 어쨌든 좋은 개념 +1. –

+0

고마워요! 내 친구. – PhatHV

1

의도 통해 U 우리는 수신기 방송 활동으로부터 데이터를 통과 할 의도를 사용하여 브로드 캐스트 리시버

2

에 문자열 값을 전달할 수있다.

intent.getExtras().get("testString"); 
2
intent = new Intent(getBaseContext(), AlarmReceiver.class); 
intent.putExtra("keyvalue",getmessage); 

는) 라인 - PendingIntent.FLAG_CANCEL_CURRENT 이하로 사용해야 할 의도를 보류 문자열 값

이다; 수신기 방송 활동으로부터 데이터를 전달하는이 I를 사용하여 브로드 캐스트 리시버

String message = context.getStringExtra("keyvalue"); 

에서

.

희망 나는 같은 문제를 가지고이 도움이

0

, 나는 mainfest 파일에 내 브로드 캐스트 리시버를 등록,하지만 내 방송 수신기에 미리 수정 번호를 전달하는 방법을 모르겠어요. 아무도 어떻게하는지 안다?

관련 문제