###前提・実現したいこと
自作のアプリから出力したテキストファイルをChatwork(Android版)を経由し
アップロードしようと考えています。
Chatworkからアップロードする際にファイルが簡単に選択できるよう
SAF上に独自のフィルタを設けようとDocumentProviderを継承し検証を行いました。
動作としては /sdcard/emulated/0/Android/data/*/files 配下のファイルを列挙するだけです。
実装にはGoogleのサンプルをほぼ転用
https://developer.android.com/samples/StorageProvider/index.html?hl=ja
###発生している問題
SAF上に項目は追加され、ファイルリストも表示されましたが、ファイルを選択すると
「このファイルのアップロードはサポートしていません」
とChatworkからエラーメッセージが表示されます。(logcat上にエラーは出力されず)
この問題の原因をご存知の方がおられましたら、ご助言いただけますと幸いです。
###AndroidManifest.xml
xml
1<?xml version="1.0" encoding="utf-8"?> 2<manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="{BUNDLE_NAME}"> 4 5 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 6 7 <application 8 android:allowBackup="true" 9 android:icon="@mipmap/ic_launcher" 10 android:label="@string/app_name" 11 android:supportsRtl="false"> 12 13 <activity android:name=".MainActivity"> 14 <intent-filter> 15 <action android:name="android.intent.action.MAIN" /> 16 <category android:name="android.intent.category.LAUNCHER" /> 17 </intent-filter> 18 </activity> 19 20 <provider 21 android:name=".TestProvider" 22 android:authorities="{BUNDLE_NAME}.documents" 23 android:exported="true" 24 android:grantUriPermissions="true" 25 android:permission="android.permission.MANAGE_DOCUMENTS"> 26 <intent-filter> 27 <action android:name="android.content.action.DOCUMENTS_PROVIDER" /> 28 </intent-filter> 29 </provider> 30 </application> 31</manifest>
###試したこと
Google Drive で確認 → アップロードできた
Chatworkの「ダウンロード」や「最近」から選択 → アップロードできた
COLUMN_MIME_TYPE が text/plain になっているか確認
COLUMN_FLAGS の各フラグを立てる
WRITE_EXTERNAL_STORAGE パーミッションを与える
###補足情報(言語/FW/ツール等のバージョンなど)
Androidバージョン
6.0.1
Chatworkバージョン
4.1.1
あなたの回答
tips
プレビュー