2013-10-16 6 views
0

저는 안드로이드 프로그래밍에 익숙하지 않습니다. BroacastReciever를 사용하여 들어오는 호출을 가로 채는 프로그램을 작성했습니다. 내 앱을 시작하면 작동하기 시작합니다. 이제 문제는 안드로이드 폰을 다시 시작할 때 BroadcastReciever가 작동하지 않는다는 것입니다. 그래서 나는 이것을 위해 봉사 할 필요가 있다고 가정하고 있습니다. 그러나 언제 서비스를 시작할 것인지, BroadcastReciever를 어디에서 시작해야할지 모르겠습니다.재부팅 후 BroadcastReciever 작업을 수행하는 방법은 무엇입니까?

BroadcastReciever 코드 -

public class CallInterceptor extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    Toast.makeText(context, "Service started", Toast.LENGTH_LONG).show(); 
    Bundle extras = intent.getExtras(); 
    if (extras != null) { 
     String state = extras.getString(TelephonyManager.EXTRA_STATE); 
     Toast.makeText(context, "Phone is " + state, Toast.LENGTH_LONG).show(); 
     if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) { 
      String phoneNumber = extras 
        .getString(TelephonyManager.EXTRA_INCOMING_NUMBER); 
      Toast.makeText(context, "Call from " + phoneNumber, Toast.LENGTH_LONG).show(); 
      //sendSMS(phoneNumber); 

      //toggle ringer mode 
      AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 
      toggleMode(am); 
     } 

    } 

} 

AndroidManifest를 파일 -

<receiver android:name="com.nagarro.service.CallInterceptor" > 
      <intent-filter> 
       <action android:name="android.intent.action.PHONE_STATE" > 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
       </action> 
      </intent-filter> 
     </receiver> 

나는 <action android:name="android.intent.action.BOOT_COMPLETED" />이 작동 생각하지 않습니다.

또한 서비스가 없어도 가능합니까? 재부팅 후에도 통화 연장 시간을 가로 챌 수있는 방법을 제안하십시오.

답변

1

첫 번째 액션 태그를 부적절하게 닫았습니다. 또한

<receiver android:name="com.nagarro.service.CallInterceptor" > 
    <intent-filter> 
     <action android:name="android.intent.action.PHONE_STATE" /> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

, 당신이 서비스를 사용하지 않는 :처럼 수신기 섹션 보일 것입니다. 방송 수신기를 사용 중입니다. 기본 사항은이 페이지를 참조하십시오 Application Fundamentals.

+0

태그를 수정 해 주셔서 감사합니다 ... 서비스를 사용하고 있지는 않지만 제 질문은이 코드가 충분한 지 또는 서비스를 받아야합니까? –

+0

감사합니다 마이크. 내 코드가 올바르게 태그를 닫은 후 작동 중입니다. –

+0

실제로이 BroacastReciever를 백그라운드에서 영원히 실행할 계획입니다 ... 문제입니까? –

관련 문제