Widget with content provider; impossible to use ReadPermission?

前端 未结 2 949
悲&欢浪女
悲&欢浪女 2021-02-02 13:29

So I\'ve just implemented a widget for my app. It gets its data from the database through my ContentProvider. I define my own read/write-permissions in my manifest,

2条回答
  •  被撕碎了的回忆
    2021-02-02 14:03

    I was able to find the answer here, credit goes to Kostya Vasilyev.

    While the context is actually correct, it is bound to the wrong process.

    So the key is to do this:

    public void onDataSetChanged() {
         // Revert back to our process' identity so we can work with our
         // content provider
         final long identityToken = Binder.clearCallingIdentity();
    
         // Update your cursor or whatever here
         // ...
    
         // Restore the identity - not sure if it's needed since we're going
         // to return right here, but it just *seems* cleaner
         Binder.restoreCallingIdentity(identityToken);
    }
    

提交回复
热议问题