ContentProvider
Android中,ContentProvider为应用之间共享数据提供统一接口,例如系统通讯录等。通过ContentProvider接口,其他应用可以和使用数据库一样,实现增删改查功能。实际上,开发中一般不用自定义ContentProvider,而是调用系统应用的ContentProvider。
ContentResolver
从ContentProvider获取数据,使用ContentResolver。这里以读取联系人为例子。
MainActivity.java
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void readContacts(View view)
{
//封装好的联系人URI
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
//使用游标读取数据
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
if (cursor != null)
{
while (cursor.moveToNext())
{
String displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Toast.makeText(this, displayName + number, Toast.LENGTH_SHORT).show();
}
cursor.close();
}
}
}
注:需要添加读取联系人权限
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。