Android获云端文件持久权限后,如何监听外部变更及获取修改时间?
Android云端文件外部变更监听与修改日期获取
监听文件外部变更的方案
- 系统没有直接API可以监听通过
ACTION_OPEN_DOCUMENT获取的云端文件的外部变更。这类文件来自不同的文档提供器,多数云端存储应用不会主动发送文件变更的广播或通知,因此通常只能自行设置时间间隔轮询检查。
无需下载文件获取最后修改日期
可以通过ContentResolver查询文件元数据来获取最后修改时间,完全不需要下载整个文件,代码示例如下:
public long getLastModifiedDate(Uri uri) { long lastModified = -1; Cursor cursor = getContentResolver().query(uri, new String[]{DocumentsContract.Document.COLUMN_LAST_MODIFIED}, null, null, null); if (cursor != null && cursor.moveToFirst()) { lastModified = cursor.getLong(0); cursor.close(); } return lastModified; }
- 上述代码使用系统定义的
DocumentsContract.Document.COLUMN_LAST_MODIFIED字段查询,大部分合规的文档提供器都会支持返回该值,直接拿到时间戳即可,无需读取文件内容。
内容的提问来源于stack exchange,提问作者Ginso
相关产品推荐
相关产品推荐

