导入android调用日志并显示它

时间:2013-12-14 10:37:16

标签: android android-contacts

我已经为android创建了一个联系人应用程序。它具有添加联系人,删除联系人,呼叫和短信的基本功能。现在我想添加一个额外的功能,即从手机导入通话记录并显示它。这是我尝试过的编码:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".call_log"
        tools:ignore="ObsoleteLayoutParam" >

        <ScrollView
            android:id="@+id/scroll_view"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >

            <TextView
                android:id="@+id/textview_call"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true" />
        </ScrollView>

    </RelativeLayout>

call_log.java文件:

public class call_log extends Activity {
    TextView textView = null;
    @Override
     protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      textView = (TextView) findViewById(R.id.textview_call);
      getCallDetails();
     }

     private void getCallDetails() {

          StringBuffer sb = new StringBuffer();
          Cursor managedQuery = managedQuery(CallLog.Calls.CONTENT_URI, null,
            null, null, null);
        Cursor managedCursor = managedQuery;
          int number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER);
          int type = managedCursor.getColumnIndex(CallLog.Calls.TYPE);
          int date = managedCursor.getColumnIndex(CallLog.Calls.DATE);
          int duration = managedCursor.getColumnIndex(CallLog.Calls.DURATION);
          sb.append("Call Log :");
          while (managedCursor.moveToNext()) {
           String phNumber = managedCursor.getString(number);
           String callType = managedCursor.getString(type);
           String callDate = managedCursor.getString(date);
           Date callDayTime = new Date(Long.valueOf(callDate));
           String callDuration = managedCursor.getString(duration);
           String dir = null;
           int dircode = Integer.parseInt(callType);
           switch (dircode) {
           case CallLog.Calls.OUTGOING_TYPE:
            dir = "OUTGOING";
            break;

           case CallLog.Calls.INCOMING_TYPE:
            dir = "INCOMING";
            break;

           case CallLog.Calls.MISSED_TYPE:
            dir = "MISSED";
            break;
           }
           sb.append("\nPhone Number:--- " + phNumber + " \nCall Type:--- "
             + dir + " \nCall Date:--- " + callDayTime
             + " \nCall duration in sec :--- " + callDuration);
           sb.append("\n----------------------------------");
          }
          //managedCursor.close();
          textView.setText(sb);
         }

link的源代码。 我在call_log.java文件中收到错误。错误是textview_call无法解析或不是字段。 我感谢任何帮助。

0 个答案:

没有答案