Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android上打开CllLog并选择一个数字_Android_Android Intent_Calllog - Fatal编程技术网

在Android上打开CllLog并选择一个数字

在Android上打开CllLog并选择一个数字,android,android-intent,calllog,Android,Android Intent,Calllog,我读过很多人的帖子,他们试图解释如何在Android上打开呼叫日志,允许用户选择一个项目,但其中没有一个有效。 有人有好的工作示例吗?下面的代码片段对我来说非常好 Intent showCallLog = new Intent(); showCallLog.setAction(Intent.ACTION_VIEW); showCallLog.setType(CallLog.Calls.CONTENT_TYPE); context.startActivity(showCallLog); 我

我读过很多人的帖子,他们试图解释如何在Android上打开呼叫日志,允许用户选择一个项目,但其中没有一个有效。
有人有好的工作示例吗?

下面的代码片段对我来说非常好

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

我用我自己的版本实现了这一点。我使用了一个对话框,并将光标交给了通话记录。以下是函数:

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();
}

我需要的操作是选择而不是查看,我希望用户选择一个呼叫日志条目。使用此u将获得本机呼叫日志屏幕,您可以执行诸如单击特定联系人等操作。本机呼叫日志将显示,这没关系,但我需要知道用户单击了哪个条目。你是如何得到这些信息的?