2013-04-03 4 views
0

Я читал много сообщений людей, пытающихся объяснить ho, чтобы открыть журнал вызовов на Android и разрешить пользователю выбирать элемент, но не работает. У кого-то есть хороший рабочий образец?Откройте CllLog на Android и выберите номер

ответ

1

Следующий фрагмент кода отлично работает со мной

Intent showCallLog = new Intent(); 
showCallLog.setAction(Intent.ACTION_VIEW); 
showCallLog.setType(CallLog.Calls.CONTENT_TYPE); 
context.startActivity(showCallLog); 
+0

Действие, которое мне нужно, - PICK, а не просмотр, я хочу, чтобы пользователь выбирал запись журнала вызовов. – rbd

+0

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

+1

Будет отображаться собственный журнал вызовов, это нормально, но мне нужно знать, в какую запись нажимал пользователь. Как вы получаете эту информацию? – rbd

0

Я получил это происходит, используя свою собственную версию. Я использовал диалог и передал его курсору в журнал вызовов. Вот эта функция:

public void getCallLog() { 

    String[] callLogFields = { android.provider.CallLog.Calls._ID, 
      android.provider.CallLog.Calls.NUMBER, 
      android.provider.CallLog.Calls.CACHED_NAME /* im not using the name but you can*/}; 
    String viaOrder = android.provider.CallLog.Calls.DATE + " DESC"; 
    String WHERE = android.provider.CallLog.Calls.NUMBER + " >0"; /*filter out private/unknown numbers */ 

    final Cursor callLog_cursor = getActivity().getContentResolver().query(
      android.provider.CallLog.Calls.CONTENT_URI, callLogFields, 
      WHERE, null, viaOrder); 

    AlertDialog.Builder myversionOfCallLog = new AlertDialog.Builder(
      getActivity()); 

    android.content.DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialogInterface, int item) { 
      callLog_cursor.moveToPosition(item); 

      Log.v("number", callLog_cursor.getString(callLog_cursor 
        .getColumnIndex(android.provider.CallLog.Calls.NUMBER))); 

      callLog_cursor.close(); 

     } 
    }; 
    myversionOfCallLog.setCursor(callLog_cursor, listener, 
      android.provider.CallLog.Calls.NUMBER); 
    myversionOfCallLog.setTitle("Choose from Call Log"); 
    myversionOfCallLog.create().show(); 
} 
Смежные вопросы