0

電話がいつ電話をかけているかを教えてくれる良いクラス/APIが見つからないようです。TelephonyManager を使用して電話の着信を検出できることはわかっていますが、ユーザーが誰かに電話をかけているかどうかを検出するにはどうすればよいでしょうか?

以下は私が現在持っているコードです:

public class hiWorld extends Activity {

private int counter=0; 



@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);



    TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);




 if(tm.getCallState()==1) //ringing  
 {

     setContentView(R.layout.activity_hi_world);
     TextView tcounter = (TextView)findViewById(R.id.textbox1);

    tcounter.setText("calling");  

 }

 else if (tm.getCallState()==0) //idle 

 { 
     setContentView(R.layout.activity_hi_world);
     TextView tcounter = (TextView)findViewById(R.id.textbox1);

     tcounter.setText("not calling");
 }
4

1 に答える 1

1

android.intent.action.NEW_OUTGOING_CALLアプリケーションで発信コール ブロードキャストを受信するため の受信者を次のように登録する必要があります。


AndroidManifest.xml

<receiver android:name=".OutgoingCallReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.NEW_OUTGOING_CALL" >
            </action>
        </intent-filter>
    </receiver>


OutgoingCallReceiver.java:

public class OutgoingCallReceiver extends BroadcastReceiver {


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

    final String originalNumber =
    intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
    //START YOUR SERVICE HERE FOR COUNTING MINS
    Intent intent = new Intent(context, MyService.class);
    intent.putExtra("number", originalNumber);
    context.startService(intent);
    }
  } 


必要な許可:

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>

于 2012-07-07T15:28:40.643 に答える