我的应用需要Gmail应用(而不是Android版本)的Froyo或Gingerbread版本为2.3.6或更高; Honeycomb和ICS上的4.0.5或更高版本。Android:重新请求权限
此外,我使用“com.google.android.gm.permission.READ_CONTENT_PROVIDER”权限。我相信上述权限未被授予,或者不适用于旧版Gmail应用版本。
如果设备已经安装了最新的Gmail应用程序,我的应用程序运行良好。但是,如果用户先安装我的应用程序,然后更新Gmail应用程序,我的应用程序将失败。
这里的logcat的:
与旧的Gmail应用推出:
08-14 16:13:12.370 E/DatabaseUtils(22386): java.lang.SecurityException: Permission Denial: reading com.google.android.gm.provider.PublicContentProvider uri content://com.google.android.gm/[email protected]/labels from pid=22456, uid=10113 requires com.google.android.gm.permission.READ_CONTENT_PROVIDER
安装了最新的Gmail应用程序后推出:
08-14 16:14:17.105 W/PackageManager(1974): Not granting permission com.google.android.gm.permission.READ_CONTENT_PROVIDER to package com.ellevsoft.gmailunread because it was previously installed without
我知道最简单的解决方法是卸载我的应用程序和重新安装。
我想让用户很容易。有没有办法重新申请许可?是否有广播接收器检测Gmail应用是否正在更新(安装)并再次请求许可?
谢谢。
过去由多个应用程序使用的非官方内容提供商不再适用于外部应用程序,而是提供可供您使用的官方只读内容提供商,这是正确的。它更受限制,并且不会授予您对电子邮件内容的访问权限,但这是使用上述权限的权限。有关Gmail API的更多详细信息,请阅读以下内容:http://android-developers.blogspot.co.il/2012/04/gmail-public-labels-api.html – Muzikant
那个,它只显示标签和计数。很高兴听到它仍然有效:) –