2012-02-17 8 views
2

私はBroadcastReceiverを持っています。これは発信通話の電話番号にプレフィックスを付け加え、プレフィックスはユーザによって追加されます。ActivityからBroadcastReceiverにデータを渡す

接頭辞(文字列変数)を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); 

ための私のコードです。意図を通して

答えて

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を使用broadcastreceiver

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

希望私は同じ問題を抱えて、この便利

0

は、私がmainfestファイルの私のbroadcastreceiverを登録しますが、私の放送受信機にプリ修正番号を渡す方法がわかりません。誰もそれを行う方法を知っていますか?

関連する問題