Android中ContentProvider的简单使用
来源:互联网 发布:数据库应用系统饭店 编辑:程序博客网 时间:2024/06/10 03:00
内容提供器是应用程序之间共享数据的接口,Android系统将这种机制应用到方方面面。
使用ContentProvider的好处就是不需要考虑数据内部是怎么存储的,比如说如果我们想利用ContenProvider来存数据,只需告诉insert函数该ContentProvider的uri和想存入的数据(包括列名和数值),查询时也是一样,只需输入Uri和查询的表,列名和查询条件,至于ContentProvider里面是怎么进行这些操作的我们不需要知道。
简单使用:
以获取通话记录为例,
Mainactivity:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取系统的通话记录 //利用系统的内容提供者查询的时候,会返回一个Cursor对象 if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for ActivityCompat#requestPermissions for more details. // 6.0以上系统才会运行到 运行检查上(6.0以下不会出现这种情况) Toast.makeText(MainActivity.this, "没给权限啊,怎么办?", Toast.LENGTH_SHORT).show(); finish(); return; } Cursor cursor = getContentResolver().query(CallLog.Calls.CONTENT_URI, null, null, null, null); while (cursor.moveToNext()){ String number = cursor.getColumnName(cursor.getColumnIndex(CallLog.Calls.NUMBER)); String name = cursor.getString(cursor.getColumnIndex(CallLog.Calls.CACHED_NAME)); String time = cursor.getString(cursor.getColumnIndex(CallLog.Calls.DATE)); //将时间格式化(处理成我们能看懂的样子) SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss"); time = simpleDateFormat.format(new Date(Long.valueOf(time))); Log.d("MainActivity","name:" + name); Log.d("MainActivity","number:" + number); Log.d("MainActivity","time:" + time); } cursor.close();}
写完之后,不要以为就完事了,还需要在清单文件中添加权限,
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
本人菜鸟一个,有什么不对的地方希望大家指出评论,大神勿喷,希望大家一起学习进步!
1 0
- Android中ContentProvider的简单使用
- Android ContentProvider 的简单使用
- Android中ContentProvider的使用
- Android ContentProvider简单使用
- Android中使用ContentProvider的必要性
- 关于android中自定义contentprovider的使用
- Android中内容提供者ContentProvider的使用
- Android中ContentProvider的理解使用
- Android ContentProvider的使用
- 【Android】ContentProvider的使用
- Android ContentProvider的使用
- android ContentProvider的使用
- android ContentProvider的使用
- android--ContentProvider的使用
- Android ContentProvider的使用
- android中内容提供者者ContentProvider的简单应用
- 使用android中ContentProvider组件对外共享以及监听ContentProvider中数据的变化
- android中跨项目的数据库操作ContentProvider的使用
- compareTo方法
- VS community 2013 的安装和使用
- java设计模式_适配器模式
- oc 和 h5中js 的交互
- 23种java设计模式之命令模式
- Android中ContentProvider的简单使用
- New Document
- 前端速学成财:第四课-粗糙的玩一玩css的"编译"
- 脉搏测量 心电波形 心率
- mysql模糊查询在jdbc中查不到内容,?两侧没有加空格
- DP-Common Subsequence
- HDU 5780 (欧拉函数)
- Surrounded Regions
- swift的数据类型、运算符和元组的简单使用