2016-08-01 6 views
0

私はインターネットから入手した以下のコードを使用して自分の電話の通話履歴画面にアクセスできました。それは、クリックして、単一のエントリのエントリの詳細、例えば、番号、コールの時間などをピックアップすることは可能ですか?Androidは通話履歴画面からエントリを取得します

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

チェックこのlink..httpユーザーからruntime permissionを取得する場合://stackoverflow.com/questions/19493360/get-last-call-duration-in-android – dipali

答えて

2

ログから1つのエントリを選択する意図はありません。

しかし、すべての情報をdbから取得してdialog listに表示し、希望するcontactを選択してください。

以下のコードを確認してください。

注:マニフェストにパーミッションを追加し、あなたのOS is 6.0 or greaterが、その後どのようhere.

<uses-permission android:name="android.permission.READ_CALL_LOG" />

public class MainActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Button ContactPickBtn = (Button) findViewById(R.id.btnPick); 
     ContactPickBtn.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       String[] strFields = {android.provider.CallLog.Calls._ID, 
         android.provider.CallLog.Calls.NUMBER, 
         android.provider.CallLog.Calls.CACHED_NAME,}; 
       String strOrder = android.provider.CallLog.Calls.DATE + " DESC"; 
       // Make you have call logs permissions 
       // if your os is 6.0 get call log permission at runtime. 
       final Cursor cursorCall = getContentResolver().query(
         android.provider.CallLog.Calls.CONTENT_URI, strFields, 
         null, null, strOrder); 

       AlertDialog.Builder builder = new AlertDialog.Builder(
         MainActivity.this); 
       builder.setTitle("Pick a contact"); 
       android.content.DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialogInterface, 
             int item) { 
         cursorCall.moveToPosition(item); 
         Toast.makeText(
           MainActivity.this, 
           cursorCall.getString(cursorCall 
             .getColumnIndex(android.provider.CallLog.Calls.NUMBER)), 
           Toast.LENGTH_LONG).show(); 
         cursorCall.close(); 
         return; 
        } 
       }; 
       builder.setCursor(cursorCall, listener, 
         android.provider.CallLog.Calls.CACHED_NAME); 
       builder.create().show(); 
      } 
     }); 
    } 
} 
+0

ありがとうございます@Sohail Zahid ..........これは私が完全に望んでいたものではありませんが、多くの助けがありました。私の目的...はい、それは正しい方向のガイドだった...ありがとうもう一度 – bharatkumar

+0

@bharatkumarようこそ。 –

+0

@Sohail Zahidは、余分なカーソルを持っているので、連絡先カーソルを使わずに通話ログを取得できます。 –

関連する問題