Android小米(miui)获取通话记录为null解决办法
16lz
2022-03-12
Android小米(miui)获取通话记录为null解决办法
在开发中发现,查询通话记录时使用
contentResolver.query(
CallLog.Calls.CONTENT_URI, Columns, null,
null,CallLog.Calls.DATE+” desc”);
在小米真机上查询出来的结果为空
解决办法:
private List getRecordForMiui(){ ContentResolver contentResolver = getContentResolver(); List mRecordList = new ArrayList(); //使用具体的路径而不是引用CallLog.Calls.CONTENT_URI Uri uri = Uri.parse("content://call_log/calls"); Cursor cursor = null; try { cursor = contentResolver.query( // CallLog.Calls.CONTENT_URI, Columns, null, // null,CallLog.Calls.DATE+" desc"); uri, null, null, null, CallLog.Calls.DATE + " desc"); if (cursor == null) return null; while (cursor.moveToNext()) { RecordEntity record = new RecordEntity(); record.name = cursor.getString(cursor .getColumnIndex(CallLog.Calls.CACHED_NAME)); record.number = cursor.getString(cursor .getColumnIndex(CallLog.Calls.NUMBER)); record.type = cursor.getInt(cursor .getColumnIndex(CallLog.Calls.TYPE)); record.lDate = cursor.getLong(cursor .getColumnIndex(CallLog.Calls.DATE)); record.duration = cursor.getLong(cursor .getColumnIndex(CallLog.Calls.DURATION)); record._new = cursor.getInt(cursor .getColumnIndex(CallLog.Calls.NEW)); Log.e("aaa", record.toString());// int photoIdIndex = cursor.getColumnIndex(CACHED_PHOTO_ID);// if (photoIdIndex >= 0) {// record.cachePhotoId = cursor.getLong(photoIdIndex);// } mRecordList.add(record); } } finally { if (cursor != null) { cursor.close(); } return mRecordList; } }
通话记录实体类
/** * Created by lxh on 2016/11/23. */public class RecordEntity { String name; String number; int type; long lDate; long duration; int _new; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public int getType() { return type; } public void setType(int type) { this.type = type; } public long getlDate() { return lDate; } public void setlDate(long lDate) { this.lDate = lDate; } public long getDuration() { return duration; } public void setDuration(long duration) { this.duration = duration; } public int get_new() { return _new; } public void set_new(int _new) { this._new = _new; }}
最后
注意添加权限
<uses-permission android:name="android.permission.READ_CALL_LOG"/> <uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
总结:
miui必须使用具体的uri路径
更多相关文章
- 简单的 Android(安卓)拍照并显示以及获取路径后上传
- 下载各个版本SDK Tools及ADT的技巧
- 使用android隐藏api实现亮度调节
- Android(安卓)同时播放缩放动画和位移动画 时, 位移的路径会发生
- Android使用的MQTT客户端
- Pycharm安装PyQt5的详细教程
- 箭头函数的基础使用
- NPM 和webpack 的基础使用
- Python list sort方法的具体使用