-1

着信番号を取得し、機能し、トーストで番号を表示するための簡単なアプリケーションを作成しますが、この変数を処理のためにメインアクティビティに渡したいです...たとえば、管理者番号に電話するときにSMSを送信します。このコードを試してみましたが、データはありません私のUIに表示...何かアイデアはありますか?これのヘルプはありますか?

   public class IncomingCallReceiver extends BroadcastReceiver {


    @Override
    public void onReceive(Context context, Intent intent) {
            Bundle bundle = intent.getExtras();

            if(null == bundle)
                    return;

            Log.i("IncomingCallReceiver",bundle.toString());

            String state = bundle.getString(TelephonyManager.EXTRA_STATE);

            Log.i("IncomingCallReceiver","State: "+ state);

            if(state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING))
            {
                    String phonenumber = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);

                    Log.i("IncomingCallReceiver","Incomng Number: " + phonenumber);

                    String info = "Detect Calls sample application\nIncoming number: " + phonenumber;



                    Intent intentsend=new Intent("update");//Send data to update UI
                    intentsend.putExtra( "data","Admin call..."+info);
                    context.sendBroadcast(intentsend);

                    Toast.makeText(context, info, Toast.LENGTH_LONG).show();
            }

そして私の主な活動は....

     @Override
public void onResume() {
    super.onResume();

     updateReceiver=new BroadcastReceiver() {
          @Override
          public void onReceive(Context context, Intent intentsend) {
              //get extras, do some stuff
            String data = intentsend.getStringExtra("data");

            textphone.setText(data);

          }
      };
      IntentFilter updateIntentFilter=new IntentFilter("update");
      registerReceiver(updateReceiver, updateIntentFilter);
}
4

2 に答える 2

0

1)このレシーバーをurアクティビティの内部クラスとして宣言します。以下のように、onReceiveが同じインテントを取得してブロードキャストしている場合も条件を追加します

       class  updateReceiver extends BroadcastReceiver() {
          @Override
          public void onReceive(Context context, Intent intentsend) {
              //get extras, do some stuff
            String data = intentsend.getStringExtra("data");

            textphone.setText(data);

          }
      };
于 2013-01-26T12:47:23.503 に答える
0

電話アプリケーションがポップアップし、アクティビティが一時停止状態になるため、電話が鳴っているときにアクティビティが表示されないと思います。

レシーバー内でロジックを実行できませんか? それともサービス内ですか?

于 2013-01-26T12:45:56.510 に答える