haben eine AppWidget mit einem Listview, die ich mit einem RemoteViewsService.RemoteViewsFactory auffüllen möchten.RemoteViewsFactory grantUriPermission zu holen Daten
Ich habe folgende Fehler
E/Android Runtime (1203): java.lang.SecurityException: Permission Denial: Lesen com.crbin1.myapp.data.ProviderLTD uri Inhalt: // com. crbin1.myapp.data.ProviderLTD/TB_WIDGET3P von pid = 413, uid = 10013 benötigt der Provider exportiert werden, oder grantUriPermission()
Wenn ich ProviderLTD (mein Content-Provider) in manifest exportieren funktioniert es, aber ich Ich möchte vermeiden, es zu exportieren.
Die andere Lösung ist grantUriPermission(). Ich setze grantUriPermissions auf true manifestieren, aber jetzt verstehe ich nicht, wo in meinem Code ich die Berechtigungen erteilen müssen.
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
}
}