2012-02-16 2 views
-1

Как обрабатывать начало/конец входящего/исходящего вызова?Как обрабатывать начало/конец входящего/исходящего вызова

Иными словами, «чтобы поймать момент начала/окончания входящего/исходящего вызова» (время между ответами и зависанием) и записать его в журнал.

версия для Android 2.3

+0

[TelephonyManager?] (Http://developer.android.com/reference/android/telephony/TelephonyManager.html) – m0skit0

ответ

2

Что вы подразумеваете под «ручкой»? Намерение?

OK - вот как:

Добавить в манифесте XML следующие строки:

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

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

Итак, как вы можете видеть, вы будете иметь 2 BroadcastReceiver классы: Исходящие и входящие.

Вот Outgoing.java:

public class Outgoing extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
     context.startService(new Intent(context, LogService.class)); 
} 

}

(я начинаю свою службу из этого класса, так вот почему я использую context.startService ...)

Вот Incoming.java:

public class Incoming extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
     Bundle bundle = intent.getExtras(); 

     if(null == bundle) 
       return; 

     String state = bundle.getString(TelephonyManager.EXTRA_STATE); 

     if(state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING)) 
     { 
      context.startService(new Intent(context, LogService.class)); 
     } 
} 


} 

Я использую это на пряниках и фрукто, и он работает нормально.

+0

Я имею в виду «Улавливать момент начала/окончания входящего/исходящего вызова». – Alexandre

+0

Ваш код действительно улавливает момент начала и окончания вызовов? Я имею в виду ** время ** между ответом и зависанием. – Alexandre

+0

Да, конечно, я использую его, как я уже сказал, и могу уловить каждый звонок - пропущенный, исходящий и входящий. –

Смежные вопросы