問題タブ [document-provider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1971 参照

ios - 写真アプリがデバイスのドキュメント プロバイダー拡張機能に表示されないのはなぜですか?

私は写真を選ぶためにアプリで作業していUIDocumentMenuViewControllerます。ドキュメントプロバイダーの拡張機能のリストを表示するために使用していました。このリストには Dropbox、iCloud、GoogleDrive が表示されますが、ネイティブの写真アプリは表示されません。なぜですか? 私のコードのサンプル:

ここに画像の説明を入力

0 投票する
0 に答える
82 参照

ios - Document Provider iOS アプリ拡張機能で回転を無効にする

アプリの拡張機能を作成していますが、向きを縦向きのみにしたいと考えています。アプリの拡張機能が読み込まれた後、横向きに拡張しているアプリの回転を防ぐことはできますか?

これらのメソッドを拡張機能の UIViewController に追加しようとしましたが、何も変更されていないようです:

0 投票する
1 に答える
578 参照

ios - IOS Document Provider に「このファイル タイプはサポートされていません」と表示される

具体的には、Web ページがアプリ「Flyskyhy」のファイルに直接アクセスできるようにするために、iOS ドキュメント プロバイダー拡張機能を実装しようとしています。私は通常のドキュメントを読み、XCode の標準的な方法を使用して DocumentProvider Extension ターゲットをプロジェクトに追加しました。そのデフォルトの実装ではまだ何も変更していませんが、最初に試してみたかったのです。拡張機能は、メールからアクセスしたときに表示され、正しく呼び出されます ([添付ファイルの追加] アクションを介して)。

ただし、Safari の Web ページからアクセスしようとすると、拡張機能がソースのデフォルト リストに表示されません。

ここに画像の説明を入力

次に、「その他」を押すと、「ファイルの種類をサポートしていません」というテキストが表示されます。

ここに画像の説明を入力

何が起こっているのか、そしてこれを機能させるために何ができるかを誰かが知っていますか?

編集:

Document Provider API は呼び出されないため、Info.plist. 詳細については、次のとおりです。

0 投票する
3 に答える
2848 参照

android - MTP を使用した Android Storage Access Framework / DocumentProvider でディレクトリ階層を通過する際の問題

更新: 私の最初の質問は誤解を招く可能性があるので、言い換えたいと思います: Android のストレージ アクセス フレームワークを介して、MTP 接続デバイスから階層ツリーをトラバースしたいです。SecurityExceptionサブノードは親ノードの子孫ではないというメッセージが表示されるため、これを達成できないようです。この問題を回避する方法はありますか? それとも、これは既知の問題ですか? ありがとう。

を介して Android の Storage Access Framework (SAF) を使用して、階層ツリーを介してドキュメントをトラバースしてアクセスしようとする Android アプリケーションを作成していますMtpDocumentsProvider。アプリからSAFピッカーを起動し、MTP データ ソースを選択してからonActivityResult、返さUriれた階層をトラバースします。残念ながら、これは機能していないようです。サブフォルダーにアクセスしてそれをトラバースしようとするとすぐに、常に次のように表示されるためSecurityExceptionですdocument xx is not a descendant of yy

私の質問は、 を使用してMtpDocumentProvider、アプリから階層ツリーを正常にトラバースし、この例外を回避するにはどうすればよいですか?

具体的に言うと、私のアプリでは、まず次のメソッドを呼び出して SAF ピッカーを起動します。

Android SAF ピッカーが起動し、接続されたデバイスが MTP データ ソースとして認識されていることがわかります。上記のデータ ソースを選択すると、次のデータが取得UriされますonActivityResult

次に、返された を使用してUriを呼び出しDocumentsContract.buildChildDocumentsUriUsingTreeて を取得し、Uriこれを使用してツリー階層を照会してアクセスできます。

外側の while ループの最初の繰り返しが成功queryCursorました。問題は 2 回目の反復です。Uriたまたま のサブノードであるを照会しようとrootUriするSecurityExceptionと、ドキュメント xx は yy の子孫ではないというメッセージが表示されます。

D/MyApp(19241): ノード uri: content://com.android.mtp.documents/tree/2/document/2/children D/MyApp(19241): docId: 4、名前: DCIM、mime: vnd。 android.document/directory D/MyApp(19241): ノード uri: content://com.android.mtp.documents/tree/2/document/4/children E/DatabaseUtils(20944): パーセル E/DatabaseUtils への書き込み例外(20944): java.lang.SecurityException: ドキュメント 4 は 2 の子孫ではありません

私が間違っていることについて誰かが洞察を提供できますか? たとえば、外部ストレージ (つまり、標準の USB OTG リーダーを介して接続された SD カード) からのものなど、別のデータ ソース プロバイダーを使用すると、すべて正常に動作します。

追加情報: Nexus 6P、Android 7.1.1 でこれを実行しています。私のアプリminSdkVersionは 19 です。

0 投票する
1 に答える
401 参照

ios - ドキュメント ピッカー ... 起動に失敗しました

独自の DocumentPickerExtensionViewController を作成し、iOS の Excel アプリで開くことができるようにしたいと考えています。オフィス アプリで、[開く] -> [...その他] -> [場所] を押して、拡張機能の名前を選択します。しかし、読み込みから約 2 秒後に、「ドキュメント ピッカー ... 起動に失敗しました (0)」というダイアログがポップアップ表示されます。

グーグルでは、このエラーについて何も見つかりません。私が何を間違えたのか誰か知っていますか?