에는 RemoteViewsService.RemoteViewsFactory로 채우려는 ListView가있는 AppWidget이 있습니다.RemoteViewsFactory grantUriPermission 데이터 가져 오기
나는 다음과 같은 오류를 가지고
E/AndroidRuntime (1203) :이 java.lang.SecurityException : 권한 거부 : 읽기 com.crbin1.myapp.data.ProviderLTD URI 내용 : // COM. PID = 413에서 crbin1.myapp.data.ProviderLTD이/TB_WIDGET3P, UID = 10013은 공급자가 수출, 또는 필요 grantUriPermission() 나는 매니페스트에 ProviderLTD (내 콘텐츠 공급자)를 내보내는 경우
가 작동하지만 그것을 수출하는 것을 피하고 싶습니다.
다른 해결책은 grantUriPermission()입니다. grantUriPermissions를 manifest에서 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
}
}