2011-10-08 5 views

답변

0

안녕하세요 당신은 브로드 캐스트 리시버에게

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; 
    } 
} 

을 사용하고 매니페스트 파일에서 당신은 지금 어떤 권한을 declear 수신기를

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

을 선언해야

<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"/> 

마지막으로 당신이 할 수있는 전화로 무엇이든 할 수 있습니다.

http://stackoverflow.com/questions/ :
+0

답변 해 주셔서 감사합니다. 나는 이것을 시도했지만 응용 프로그램이 실행되고 있지 않을 때 의도를 얻지 못했고 응용 프로그램이 실행 중이 지 않아도 어떻게 방송을받을 수 있습니까? – user733284

+0

당신은이 브로드 캐스트 리시버에서 애플리케이션을 시작하거나 매번 방송을 듣고 싶습니다. –

관련 문제