什么是Content Provider
- 应用程序间共享数据的一种方式
- 为存储和获取数据提供了统一的接口
- Android为常见的一些数据提供了默认的ContentProvider
- Uri : 通用资源标识符
创建和使用Content Provider的步骤:
图片从视频网上copy的
下面写一个利用Content Provider 读取手机通讯录联系人姓名,并将名字显示在TextView中
xml代码
Java代码, 里面该有的都注释了
public class Demo01 extends AppCompatActivity { private TextView people_tv; //希望获得姓名(通讯录内的姓名) private String columns = ContactsContract.Contacts.DISPLAY_NAME; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_demo01); people_tv = findViewById(R.id.module_act_people_tv); //将联系人信息显示出来 people_tv.setText(getQueryData()); //添加访问系统通讯录权限 //} private CharSequence getQueryData(){ //用于保存获取的联系人 StringBuilder stringBuilder = new StringBuilder(); ContentResolver resolver = getContentResolver(); //查询记录 Cursor cursor = resolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null, null); //获取姓名记录的索引值 int displayNameIndex = cursor.getColumnIndex(columns); //迭代获取索引 for (cursor.moveToFirst();!cursor.isAfterLast();cursor.moveToNext()){ String displayName = cursor.getString(displayNameIndex); stringBuilder.append(displayName+"\n"); } //关闭cursor cursor.close(); return stringBuilder.toString(); }}