私はキューをチェックするために10秒ごとに実行されるサービスを作成しようとしています。キューにデータがある場合は、指定したURI(アプリケーションから取得した画像のURI)特定のURLに。実行可能なアンドロイドの許可の問題
私はこれらの線に沿って何か
public QueueProcessor(final Context context){
this.mContext = context.getApplicationContext();
}
/**
* Starts processing the items on a separate thread.
*/
public void process() {
Runnable running = new Runnable() {
@Override
public void run() {
try{
Log.i(RUN_QP_TAG, "Processing queue");
// more here
isRunning = true;
Queue theQ = Queue.getInstance();
if(theQ.getSize() > 0){
WorkQItem itm = theQ.pop();
if(itm.hasImage()){
pushImageUploadToProcess(itm);
}
}
} catch (Exception e) {
// TODO: handle exception
}
finally{
//also call the same runnable to call it at regular interval
handler.postDelayed(this, 10000);
}
}
};
new Thread(running).start();
}
pushImageUploadToProcessがWorkQItemを取り、URIを開き、バイトを書き込むことによって(文字列picUriとして保存されます)のアイテムから画像をアップロードしようとするを作成しました。しかし、picUriの場所を開こうとすると、アクセス許可拒否例外が発生します。
MediaDocumentsProvider uri content://com.android.providers.media.documents/document/image%3A531 from pid=795, uid=10327 requires android.permission.MANAGE_DOCUMENTS, or grantUriPermission()
このスレッド/ランナブルにURIへのアクセスを許可するにはどうすればよいですか? 注ボタンイベントから直接アップロードを試しても機能します。
私はマニフェストで次の権限を持っている:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
アクセス許可を追加してください。どこに置いてもいいですか? –