2015-11-06 2 views
0

У меня есть вопрос. Я прочитал много учебника, в котором объясняется, как читать call.log, но моя проблема заключается в том, как я могу поместить читателя журнала вызовов в службу обнаружения изменений? Мое приложение должно было выполнить некоторые действия, когда в журнале вызовов появился новый исходящий вызов. Кто-нибудь может мне помочь? ПриветИзменение журнала звонков

ответ

0

Если вы хотите, чтобы обнаружить входящий вызов, вы должны транслировать действия: ACTION_PHONE_STATE_CHANGED

Если вы хотите, чтобы запустить трансляцию в службе:

public class ServDelLog extends Service { 
@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
     Log.d("SERVICE", "STARTED"); 
     //-- Here is the filter 
     IntentFilter filter = new IntentFilter(); 
     filter.addAction(TelephonyManager.ACTION_PHONE_STATE_CHANGED); 
     filter.setPriority(-1); 
     registerReceiver(receiver, filter); 
     //-- Inser your Code here ---- 
     ScanCallLog(this); //-- For exapmle a function for scaning the log 
     // 
     return START_STICKY; 
    } 
    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     unregisterReceiver(receiver); 
    Log.d("SERVICE", "STOPPED"); 
    } 
    @Override 
    public IBinder onBind(Intent intent) { 
    // TODO Auto-generated method stub 
    return null; 
    } 
    private final BroadcastReceiver receiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(final Context context, Intent intent) { 
      String action = intent.getAction(); 
      if(action.equals(android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED)){ 
      //-- Because you've got to wait before the phone write into the call log 
       new CountDownTimer(5000, 1000) { 
        public void onFinish() { 
         ScanCallLog(context); 
        } 
        public void onTick(long millisUntilFinished) { 
         // millisUntilFinished The amount of time until finished. 
        } 
       }.start(); 

      } 
     } 
    }; 
} 

услугу можно установить в вашей деятельности, позвонив по телефону:

startService(new Intent(this, ServDelLog.class)); 

И не забудьте добавить в манифесте:

<service android:name=".ServDelLog" /> 
Смежные вопросы