2011-10-08 33 views
0

如何在用戶收到來電時得到指示?如何在用戶接到電話時獲得指示?

我也想得到應用程序未運行時的指示。

+0

[見這個答案] [1] 在您的清單 [1]你需要一個廣播接收器和<輸入濾波>:http://stackoverflow.com/questions/ 2958800/service-and-a-broadcastreceiver – Raffaele

回答

0

嗨對於這一點,你必須使用廣播reciever

public class TestServiceReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(final Context context, Intent intent) { 
    TelephonyManager telephony = (TelephonyManager) context 
    .getSystemService(Context.TELEPHONY_SERVICE); 

    int state = telephony.getCallState(); 
    String incomingNumber = 
     intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER); 

    switch (state) { 
    case TelephonyManager.CALL_STATE_IDLE: 

     Log.d("@@@@@@@@@@@@@@@@@@@@@@@@@TestServiceReceiver", "IDLE"); 
     break; 
    case TelephonyManager.CALL_STATE_OFFHOOK: 

     Log.d("@@@@@@@@@@@@@@@@@@@@@@@@@TestServiceReceiver", "OFFHOOK"); 
     break; 
    case TelephonyManager.CALL_STATE_RINGING: 

     Log.d("@@@@@@@@@@@@@@@@@@@@@@@@TestServiceReceiver", "RINGING"); 
     break; 
    } 
} 

而且在清單文件必須聲明接收器

<receiver android:name=".TestServiceReceiver"><intent-filter><action android:name="android.intent.action.PHONE_STATE"/></intent-filter></receiver> 

現在declear一些權限

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

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

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

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

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

終於可以用你的電話做任何事

+0

感謝您的回覆。我試過這個,但是當應用程序沒有運行時,我沒有得到意圖,即使我的應用程序沒有運行,我怎麼能得到廣播? – user733284

+0

你想做什麼從這個廣播接收器開始你的應用程序,或者想每次只收聽廣播 –

相關問題