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();
}
});
}
}
Kontrolle dieses link..http: //stackoverflow.com/questions/19493360/get-last-call-duration-in-android – dipali