0

通話履歴から最近不在着信の番号を取得しようとしています。バックグラウンドで実行したい以下のコードを使用しました。呼び出しが不在着信ログに移動すると、この関数が機能するはずです。それを可能にする方法 plz ヘルプ

  public void SendSMStoMissedCall()
{
    String[] strFields = {android.provider.CallLog.Calls.CACHED_NAME, 
            android.provider.CallLog.Calls.NUMBER,android.provider.CallLog.Calls.DATE, 
            android.provider.CallLog.Calls.TYPE};

    String strOrder = android.provider.CallLog.Calls.DATE + " DESC";

    Cursor mCallCursor = getContentResolver().query(android.provider.CallLog.Calls.CONTENT_URI,strFields, null, null, strOrder);

    if (mCallCursor.moveToFirst())
    {

        do 
        {
            boolean missed = mCallCursor.getInt(mCallCursor.getColumnIndex(CallLog.Calls.TYPE)) == CallLog.Calls.MISSED_TYPE;

            if (missed) 
            {
                String name = mCallCursor.getString(mCallCursor.getColumnIndex(CallLog.Calls.CACHED_NAME));
                number = mCallCursor.getString(mCallCursor.getColumnIndex(CallLog.Calls.NUMBER));
                String time = mCallCursor.getString(mCallCursor.getColumnIndex(android.provider.CallLog.Calls.DATE));
                      Log.d("PhoneLog", "You have a missed call from " + name + " on " + number  + " at " + time);  
                String ContactName = objUtility.getContactNameFromNumber(number);

                SendMessage(number);
                getCurrentLocation();
            }
       } 
      while (mCallCursor.moveToNext());

     }

}
4

1 に答える 1

0

サービスを作成し、サービスに を実装しPhoneStateListenerます。の拡張クラスではPhoneStateListeneronCallStateChangedメソッドで上記のコードをTelephonyManager.CALL_STATE_IDLEケースに入れます。

于 2013-03-22T15:58:32.707 に答える