2015-03-13 112 views
0

我們有一個Android天氣應用程序,該應用程序還提供了一個小部件。 小部件顯示當前用戶位置的當前時間和天氣。logcat中缺少Google服務權限

如果顯示器處於活動狀態,則每分鐘更新一次窗口小部件時鐘(通過AlarmManager),天氣數據的間隔時間更長。有時小部件「凍結」。我們能夠追蹤到下一次沒有設置檢查的警報,但是沒有線索。

現在我們在受影響的設備的設備日誌發現以下警告:

03-12 10:15:44.803 771 4958 W ActivityManager: Permission Denial: opening provider com.google.android.gsf.gservices.GservicesProvider from ProcessRecord{41a4d028 25012:com.my.app/u0a88} (pid=25012, uid=10088) requires com.google.android.providers.gsf.permission.READ_GSERVICES or com.google.android.providers.gsf.permission.WRITE_GSERVICES 

這開始於在時鐘應該已經更新的時間恰好出現。然後重複該消息幾次,直到ActivityManager終止該過程。

我們使用Google Play定位服務獲取用戶的當前(或最後知道的)位置。我發現引用了服務的版本4.2(here和https://stackoverflow.com/questions/22682538/when-to-use-read-gservices-permission)中可能導致此錯誤的錯誤,但設備版本6.7.76安裝。

還有一件需要考慮的事情是該設備正在運行Cyanogenmod,雖然卡住的小部件問題也發生在具有「普通」Android的設備上。

任何提示可能會導致此權限錯誤非常感激。謝謝!

編輯:小部件和應用程序在這個和許多其他設備上正常工作,直到出現警告。 Google文檔也沒有提到你需要獲得這些權限。實際上,根據現場搜索,唯一提及的是here in this document,但頁面本身沒有提及READ_GSERVICES

+0

是不是您引用的錯誤消息而不言自明? – 2015-03-13 15:03:32

+0

是的,但不是爲什麼它沒有出現之前,爲什麼谷歌文檔沒有提及這些權限以及爲什麼它在數百萬其他設備上工作。編輯:在大多數情況下,它在大多數情況下都是有效的。它也適用於此設備一段時間。 – Cornelius 2015-03-13 15:10:50

回答

2

兩個權限,它要求:

<uses-permission android:name="com.google.android.providers.gsf.permisson.READ_GSERVICES"/>  
<uses-permission android:name="com.google.android.providers.gsf.permission.WRITE_GSERVICES"/> 

某事只記得,因爲這個問題被報道在谷歌播放位置服務在4.2並不意味着它已得到修復。可能需要查看報告的Google bug,看看是否有人遇到任何問題。我發現了一些運行更新的Google Play服務的問題。

我自己做了一個快速的谷歌搜索似乎是主要問題的手機是Moto X和Nexus 5.這是相當有趣的,因爲它們都是Android開源項目的錯誤(即運行Android的股票沒有皮膚的手機! )

只是幾個問題:

  • ,你能否證實什麼手機你有和的Android版本,你 正在運行嗎?
  • 另外您的目標SDK是什麼?
  • APK中包含哪些版本的播放服務?
+0

感謝您的回答!奇怪的是,文檔沒有提到這些權限。我會在下週提供所需信息回覆您(設備的同事不在了)。 – Cornelius 2015-03-13 16:45:15

+0

這裏是所需的信息: **電話**:索尼C5303 cm-11-20150309-NIGHTLY(CyanogenMod), **目標SDK **:21, **播放服務**:6.5.87 – Cornelius 2015-03-16 08:51:26

+0

我只看到亞馬遜設備的這個例外。這是非谷歌播放分佈式設備的東西嗎? – batmaci 2018-01-09 00:51:31