SMS/MMS 数据位置取决于设备的制造商和 Android 版本。在 Android 4.4(API 级别 19)及更高版本上,应用程序默认不再具有访问 SMS/MMS 数据的权限。因此,要访问 SMS/MMS 数据,必须请求 READ_SMS、WRITE_SMS 和 RECEIVE_MMS(仅限 MMS)等权限。
原生应用可以使用以下代码来访问 SMS/MMS 数据:
Uri uri = Uri.parse("content://sms/inbox"); String[] projection = new String[]{"_id", "address", "person", "body", "date", "type"}; Cursor cursor = getContentResolver().query(uri, projection, null, null, "date DESC");
Cordova/PhoneGap 应用程序可以使用 cordova-sms-plugin 访问 SMS 数据:
sms.listSms({}, function (data) { console.log(data); }, function (error) { console.log(error); });
要访问 MMS 数据,可以使用 cordova-plugin-mms 插件:
mms.list({}, function (data) { console.log(data); }, function (error) { console.log(error); });
如果需要在 Cordova/PhoneGap 应用程序中访问 SMS/MMS 数据,可以使用 cordova-plugin-file 插件。该插件允许您在设备文件系统上进行读取和写入操作:
var filePath = cordova.file.externalRootDirectory + "sms.txt"; window.resolveLocalFileSystemURL(filePath, function (fileEntry) { fileEntry.file(function (file) { var reader = new FileReader(); reader.readAsText(file); reader.onloadend = function () { console.log(this.result); }; }, function (error) { console.log(error); }); }, function (error) { console.log(error); });
上一篇:Android“App not Installed”错误-无法删除.tmp文件
下一篇:Android、Cordova/PhoneGap、Cordova-Plugin-File中SMS/MMS数据位置的问题。