2012-03-28 4 views
1

可能性の重複:
launching my app when dialing a number私のアプリケーションでダイヤルされた携帯電話番号を取得する方法は?

私は次のようにアプリケーションを実装している私のアンドロイドapplication.Iにユーザーがダイヤルしたダイヤラからの携帯電話番号を取得したいと思います:

私はダイヤラapp.Ifユーザーはその後、私が取得したい携帯電話番号を入力して、呼び出しのためにクリックし開くことができます上記のコードから
((Button)findViewById(R.id.button1)).setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:"))); 

     } 
    }); 

彼が入力した番号。 それにしてくださいすべてのボディ助け...

+3

私はこのスレッドの閉鎖に反対する - すべてのフェッチで議論されていない「複製します」電話番号のさらに、その答えはより低い価値を伴います。スレッドを閉じるには、もう一方のスレッドを閉じます。 –

+0

私もこのようなことを試みています。しかし、私は何かがダイヤラーのアプリでダイヤルされるとすぐにコールが行われる前に番号を取得したい。どのような身体を助けることができる? –

答えて

0

コード

public class OutGoingCall extends BroadcastReceiver { 

    @Override 
    public void onReceive(final Context context, final Intent intent) 
    { 
     // get phone number from bundle 
     String phoneNumber = intent.getExtras().getString(OutGoingCall.INTENT_PHONE_NUMBER); 

    } 
} 
+0

インテントi =新しいインテント(Intent.ACTION_DIAL、Uri.parse( "tel:" + phoneno)); –

+0

このようにすることもできます。Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setData(Uri.parse( "tel:" + pnmu)); context.startActivity(callIntent);変数を介して番号を送信する –

10

を以下のように私はあなたがBroadcastReceivertoを使用することができます私の解決策を持っていることです:

は、マニフェストファイル内でこのようなBroadcastReceiverを登録します。

<!-- DIAL Receiver --> 
    <receiver 
     android:exported="true" 
     android:name="receivers.DialBroadcastReceiver" > 
     <intent-filter > 
      <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 
     </intent-filter> 
    </receiver> 

あなたがNEW_OUTGOING_CALLの許可を必要とする:

<!-- OUTGOING CALL PERMISSION--> 
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> 

結局あなたは、放送を受信し、このようにダイヤルした番号取得することができます

public class DialBroadcastReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 

    Log.v("DileBroadCastReceiver","In onReceive()"); 

    if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) { 
     String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); 

     Log.v("DialBroadcast Receiver","Number is: "+number); 

    } 

} 

}

関連する問題