2014-08-28 69 views

回答

2

當然你可以!您將不得不創建監聽來電意圖的服務,然後執行您喜歡的操作。

有關更多信息,請參見本教程:

+0

好的,先生,我要去試試這個。 – Hasnain 2014-08-28 07:30:50

0

您可以使用廣播接收器

<receiver android:name=".IncomingCall"> 
    <intent-filter android:priority="999"> //high priority, so that your receiver is called soon 
    <action android:name="android.intent.action.PHONE_STATE" /> 
    </intent-filter> 
</receiver> 

添加權限的mainfest文件

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

代碼:

public class IncomingCall extends BroadcastReceiver { 

    public void onReceive(Context context, Intent intent) { 

    try { 
       // TELEPHONY MANAGER class object to register one listner 
       TelephonyManager tmgr = (TelephonyManager) context 
         .getSystemService(Context.TELEPHONY_SERVICE); 

       //Create Listner 
       MyPhoneStateListener PhoneListener = new MyPhoneStateListener(); 

       // Register listener for LISTEN_CALL_STATE 
       tmgr.listen(PhoneListener, PhoneStateListener.LISTEN_CALL_STATE); 

     } catch (Exception e) { 
      Log.e("Phone Receive Error", " " + e); 
     } 

    } 

    private class MyPhoneStateListener extends PhoneStateListener { 

     public void onCallStateChanged(int state, String incomingNumber) { 

      Log.d("MyPhoneListener",state+" incoming no:"+incomingNumber); 

      if (state == 1) { 

       String msg = "New Phone Call Event. Incomming Number : "+incomingNumber; 
       int duration = Toast.LENGTH_LONG; 
       Toast toast = Toast.makeText(pcontext, msg, duration); 
       toast.show(); 

      } 
     } 
    } 
} 
+0

我也會試試這個 – Hasnain 2014-08-28 07:51:28

相關問題