第68章、使用ContentProvider操作通话记录(从零开始学Android)

  android也提供了很多接口,通过ContentResolver().query方法,传入不同的URI即可访问相应的数据集。

  读取通话记录信息,传入的URI为:CallLog.Calls.CONTENT_URI

 一、设计界面

  1、布局文件

  打开res/layout/activity_main.xml文件。
  输入以下代码:




    

    
    

    


2、自定义ListView文件

  打开res/layout/calls.xml文件。
  输入以下代码:




    
    
    
    
    
    
     
    


二、程序文件

  打开“src/com.genwoxue.contentprovider_b/MainActivity.java”文件。
  然后输入以下代码:

package com.genwoxue.contentprovider_b;


import android.os.Bundle;
import android.provider.CallLog;
import android.provider.ContactsContract;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.app.Activity;
import android.database.Cursor;

public class MainActivity extends Activity {

	private ListView lvCalls=null;
	private Cursor cursor=null;
	private Button btnRead=null;
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		lvCalls=(ListView)super.findViewById(R.id.calllist);
		
		
		btnRead=(Button)super.findViewById(R.id.read);
		
		btnRead.setOnClickListener(new OnClickListener(){
        	public void onClick(View v)
        	{  
        		cursor=MainActivity.this.getContentResolver()
        				.query(CallLog.Calls.CONTENT_URI,
        						null,
        						null,
        						null,
        						null);
        		String[] from={CallLog.Calls._ID,CallLog.Calls.CACHED_NAME,CallLog.Calls.NUMBER};
        		int to[]={R.id._id,R.id.name,R.id.mobile};
        		
        		SimpleCursorAdapter adapter = new SimpleCursorAdapter(
        				MainActivity.this,
        				R.layout.calls,
        				cursor,
        				from,
        				to);
        		lvCalls.setAdapter(adapter);
        	}
		});
	}

}


三、配置文件

  打开“AndroidManifest.xml”文件。

  然后输入以下代码:




    
    

    
        
            
                
                
            
        
    


  注意:需要在AndroidManifest.xml文件中添加权限:

  

四、运行结果

转载于:https://my.oschina.net/u/2252134/blog/545651

你可能感兴趣的:(第68章、使用ContentProvider操作通话记录(从零开始学Android))