如何解决来自 GServices 的安全异常?

Nir*_*raj 2 android

我有一个应用程序,我在其中使用 Google Play 服务和 Google Plus 登录 API。我的问题是有时应用程序崩溃并抛出下面提到的异常。我该如何解决这个问题?

由 java.lang.SecurityException 引起:权限拒绝:从 pid=8304、uid=10100 读取 com.google.android.gsf.gservices.GservicesProvider uri content://com.google.android.gsf.gservices 需要 com.google。 android.providers.gsf.permission.READ_GSERVICES 或 grantUriPermission()

Nil*_*hod 6

您需要在清单文件中请求许可。

如果你得到:

Caused by java.lang.SecurityException: Permission Denial: reading com.google.android.gsf.gservices.GservicesProvider uri content://com.google.android.gsf.gservices from pid=8304, uid=10100 requires com.google.android.providers.gsf.permission.READ_GSERVICES, or grantUriPermission()
Run Code Online (Sandbox Code Playgroud)

您需要READ_GSERVICES权限:

<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
Run Code Online (Sandbox Code Playgroud)

如果你得到:

Fatal Exception: java.lang.SecurityException: Permission Denial: opening provider com.google.android.gsf.gservices.GservicesProvider from ProcessRecord{283928d 13782:com.***/***} (pid=13782, uid=10222) requires com.google.android.providers.gsf.permission.READ_GSERVICES or com.google.android.providers.gsf.permission.WRITE_GSERVICES
Run Code Online (Sandbox Code Playgroud)

您需要READ_GSERVICESWRITE_GSERVICES权限:

<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.WRITE_GSERVICES"/>
Run Code Online (Sandbox Code Playgroud)

注意:这些权限几乎没有记录。我在这个答案中找到了一些很好的见解。