4
我正在開發一個應用程序的widget作爲更大的應用程序的一部分。 該應用程序包含其在manifest.xml如下聲明ContentProvider的:通過android.widget.RemoteViewsService訪問時的Content Provider權限
<provider android:name="aaa.bbb.providers.MyContentProvider"
android:authorities="aaa.bbb.myprovider"
android:enabled="true"
android:exported="false">
</provider>
正如你所看到的內容提供商exported屬性設置爲false,因爲我不想 其他應用程序來訪問它(根據谷歌的開發者指南..)。 問題是這個屬性導致小部件在嘗試從內容提供者獲取數據 時崩潰,雖然它從SAME進程運行(小部件使用StackView,它使用android.widget.RemoteViewsService)我得到:
java.lang.SecurityException: Permission Denial: reading aaa.bbb.providers.MyContentProvider uri content://aaa.bbb.myprovider/users from pid=203, uid=10022 requires null
現在據我知道,這種時候權限是缺少錯誤occurres的,但它說 的許可null
是必需的,並且有大家都知道沒有這樣的權限...
謝謝!
我讀了它,但瑤池沒有幫助我。 我的問題不涉及活動,但只涉及一個小部件和一個內容提供者。 – WhiteTigerK 2011-05-19 13:00:53
好吧我想我知道問題來自哪裏,但我沒有解決方案。 在我的'RemoteViewsService'中有一個'RemoteViewsFactory'類,在那裏我重寫了'onDataSetChanged'()方法 ,並對內容提供者執行查詢。 由於某些原因,只有在從'onDataSetChanged()'方法 查詢內容提供者時,纔會發生異常(我再次檢查該方法運行的過程是什麼,它與內容提供者的過程相同)。 – WhiteTigerK 2011-05-19 13:50:32