2016-08-01 8 views
0

Ich habe in der Lage, die Anruflisten Bildschirm meines Telefons mit dem untenstehenden Code aus dem Internet habe ich erreichen. Ist es möglich, mit einem Klick die Zugangsdaten, wie Nummer, Uhrzeit des Anrufs usw., des einzelnen Eintrags abzurufen?Android-Abholung Eintrag von Call-History-Bildschirm

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

Kontrolle dieses link..http: //stackoverflow.com/questions/19493360/get-last-call-duration-in-android – dipali

Antwort

2

Sie können keine Absicht verwenden, um einen einzelnen Eintrag aus Protokollen auszuwählen.

Aber Sie können alle Informationen von db und zeigen sie in eine dialog list und wählen Sie dann eine beliebige contact Sie wollen.

Überprüfen Sie unten Code, wie es funktioniert.

Hinweis: Erlaubnis in Manifest hinzufügen und Wenn Ihre OS is 6.0 or greater dann runtime permission von Benutzern bekommen, wie 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

Danke @Sohail Zahid .......... Es war viel Hilfe .. obwohl das ist nicht was ich wollte komplett ... eine kleine Änderung würde dienen meine Absicht ... aber ja, es war ein Wegweiser in die richtige Richtung ... Danke wieder – bharatkumar

+0

@bharatkumar Sie sind willkommen. –

+0

@Sohail Zahid können Sie helfen, Anrufprotokoll Bild ohne Kontakt Cursor, weil mit extra Cursor seine Zeit nehmen. –