Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:使用ContentProvider阅读电子邮件_Android_Email_Android Contentprovider - Fatal编程技术网

Android:使用ContentProvider阅读电子邮件

Android:使用ContentProvider阅读电子邮件,android,email,android-contentprovider,Android,Email,Android Contentprovider,我想使用ContentProvider从Android设备(Wildfire S)读取默认HTC邮件应用程序中的电子邮件,类似于阅读短信: Uri allMessage = Uri.parse("content://sms/"); ContentResolver cr = getContentResolver(); Cursor c = cr.query(allMessage, null, null, null, null); while (c.moveToNext()) { smss

我想使用ContentProvider从Android设备(Wildfire S)读取默认HTC邮件应用程序中的电子邮件,类似于阅读短信:

Uri allMessage = Uri.parse("content://sms/");
ContentResolver cr = getContentResolver();
Cursor c = cr.query(allMessage, null, null, null, null);
while  (c.moveToNext()) {
    smss.add(new SMSObject(c)); //custom object which just retrieves all fields
}
邮件也应该有类似的功能,因此我检查了所有可用的内容提供者:

for (PackageInfo pack : getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS)) {
    ProviderInfo[] providers = pack.providers;
    if (providers != null) {
        for (ProviderInfo provider : providers) {
            Log.d("Example", "provider: " + provider.authority);
        }
    }
}
在这个列表中(其中包含像
gmaills
sms
com.android.calendar
,所以我在正确的轨道上)我找到了
mail
,所以我尝试了以下方法:

Uri allMessage = Uri.parse("content://mail/");
ContentResolver cr = getContentResolver();
Cursor c = cr.query(allMessage, null, null, null, null);
while  (c.moveToNext()) {
    emails.add(new SMSObject(c)); //custom object. should work with emails as well
}
但我有一个例外:

11-14 11:48:42.105:E/AndroidRuntime(3609):java.lang.RuntimeException:无法启动活动组件信息{nl.me.emailretriever/nl.me.emailretriever.MainActivity}:java.lang.SecurityException:权限拒绝:从进程记录{40685dd8 3609:nl.me.emailretriever/10076}打开提供程序com.htc.android.mail.MailProvider(pid=3609,uid=10076)需要com.htc.android.mail.permission.READ\u mail或com.htc.android.mail.permission.WRITE\u mail

11-14 11:48:42.105:E/AndroidRuntime(3609):由以下原因引起:java.lang.SecurityException:权限拒绝:从ProcessRecord{40685dd8 3609:nl.me.emailretriever/10076}(pid=3609,uid=10076)打开提供程序com.htc.android.mail.Permission.READ_mail或com.htc.android.mail.Permission.WRITE_mail

所以我添加了这两个权限,但都没有用

<uses-permission android:name="com.htc.android.mail.permission.WRITE_MAIL" />
<uses-permission android:name="com.htc.android.mail.permission.READ_MAIL" />


我如何才能像访问SMS一样阅读/访问电子邮件?尽管我拥有所需的权限,但为什么会出现例外情况?

你是否以某种方式做到了这一点?@sayed.jalil不,不幸的是,我无法做到。