ContentResolver(内容解析器)的用法

我们的应用借助ContentResolver来操作其他应用通过ContentProvider暴露给我们的数据。

我们通过getContentResolver()来获取到ContentResolver的实例,ContentResolver提供了一系列方法来操作数据。

参数说明:

  • insert()
    用于添加数据

  • update()
    用于更新数据

  • delete()
    用于删除数据

  • query()
    用于查询数据

可以看到和SQLite的操作方法类似,不同点在于ContentResolver是不接收表名参数的,我们通过URI来确定要操作的数据。

使用系统提供的ContentProvider,读取联系人

public class MainActivity extends Activity { 

    private Button bt; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 

        bt = (Button) findViewById(R.id.bt); 
        bt.setOnClickListener(new View.OnClickListener() { 

            @Override 
            public void onClick(View v) { 
                ContentResolver resolver = getContentResolver(); 
                Uri uri = Uri.parse("content://sms"); 
                Cursor cursor = resolver.query(uri, null, null, null, null); 
                while (cursor.moveToNext()) { 
                    Log.d("TTTT", cursor.getString(cursor.getColumnIndex("body"))); 
                } 
            } 
        }); 
    } 
} 
Copyright© 2020-2022 li-xyz 冀ICP备2022001112号-1