0

我在我的 XML 文件上创建了一个按钮。我想单击该按钮,以便显示 Android 设备的通话记录。

这是我的 XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:baselineAligned="true"
    android:orientation="horizontal" >  

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="SEARCH" />
</LinearLayout>

在我的代码下面,但有一些错误。我还没有设置我的按钮OnClickListener

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.CallLog;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.CommonDataKinds.Email;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class CallLogActivity extends Activity {
/** Called when the activity is first created. */
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String[] projection =     newString[{CallLog.Calls.NUMBER,CallLog.Calls.DATE,CallLog.Calls.CACHED_NAME};
Uri contacts =  CallLog.Calls.CONTENT_URI;

Cursor managedCursor = managedQuery(contacts,     projection,null,null,                     CallLog.Calls.DATE + " ASC");
getColumnData(managedCursor);
}
     private void getColumnData(Cursor cur){
    try{
   if (cur.moveToFirst()) {
     String name;
     String number;
     long date;
     int nameColumn = cur.getColumnIndex(CallLog.Calls.CACHED_NAME);
     int numberColumn = cur.getColumnIndex(CallLog.Calls.NUMBER);
     int dateColumn = cur.getColumnIndex(CallLog.Calls.DATE);

     System.out.println("Reading Call Details: ");
     do {
         name = cur.getString(nameColumn);
         number = cur.getString(numberColumn);
         date = cur.getLong(dateColumn);
         System.out.println(number + ":"+ new Date(date) +":"+name);

            } while (cur.moveToNext());
          }
      }

      finally{
    cur.close();
      }
    }
    }
4

1 回答 1

0

按下按钮获取 cal 日志后,您必须查询 cal 日志内容提供程序

Cursor c = contentResolver.query(CallLog.Calls.CONTENT_URI,DataQuery.PROJECTION, DataQuery.SELECTION, new String[]String.valueOf(rawContactId)}, null);
于 2012-07-10T10:52:36.357 回答