【问题标题】:RemoteViewsFactory grantUriPermission to fetch dataRemoteViewsFactory grantUriPermission 来获取数据
【发布时间】:2013-07-13 00:58:02
【问题描述】:

有一个带有 Listview 的 AppWidget,我想用 RemoteViewsService.RemoteViewsFactory 填充它。

我有以下错误

E/AndroidRuntime(1203): java.lang.SecurityException: 权限 拒绝:读取 com.crbin1.myapp.data.ProviderLTD uri content://com.crbin1.myapp.data.ProviderLTD/TB_WIDGET3P 来自 pid=413, uid=10013 要求提供者被导出,或者grantUriPermission()

如果我在清单中导出 ProviderLTD(我的内容提供商),它可以工作,但我想避免导出它。

另一个解决方案是grantUriPermission()。我在清单中将 grantUriPermissions 设置为 true,但现在我不明白我必须在代码中的哪个位置授予权限。

public class Widget3pService extends RemoteViewsService {
       @Override
        public RemoteViewsFactory onGetViewFactory(Intent intent) {
           return new StackRemoteViewsFactory(this.getApplicationContext(), intent);
        }
    }


    class StackRemoteViewsFactory implements RemoteViewsService.RemoteViewsFactory {
        private List<ObjW3Task> mWidgetItems = new ArrayList<ObjW3Task>();
        private Context mContext;
        private int mAppWidgetId;

        public StackRemoteViewsFactory(Context context, Intent intent) {
            mContext = context;
            mAppWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
        }

        public RemoteViews getViewAt(int position) {
            // use mWidgetItems to populate ListView
            // fillInIntent for listeners
            return myRemoteViews;
        }

        public void onDataSetChanged() {
            mWidgetItems = new ArrayList<ObjW3Task>();
            // create mWidgetItems by accessing my ContentProvider class
        }
}

【问题讨论】:

    标签: android android-permissions android-appwidget


    【解决方案1】:

    不确定这是否仍然相关;我发现它适用于我,通过设置“android:exported = true”:

    <provider android:name="WeatherDataProvider" android:exported="true">
    

    看到这个: Android Permission denial in Widget RemoteViewsFactory for Content

    【讨论】:

      猜你喜欢
      • 2013-10-23
      • 1970-01-01
      • 2023-01-02
      • 2018-06-19
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多