9

FileProvider を他のアプリケーションで利用できるようにすることは可能ですか?

マニフェスト.xml

...
 <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="com.example.myapp.fileprovider"
        android:exported="true"
        android:grantUriPermissions="false"
        android:permission="com.example.filesvisible.permission.READ" >
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/filespath" />
    </provider>
...

ドキュメントから:

false: プロバイダは他のアプリケーションで使用できません。android:exported="false" を設定して、プロバイダーへのアクセスをアプリケーションに制限します。プロバイダーと同じユーザー ID (UID) を持つアプリケーションのみがアクセスできます。

exportを true に設定しようとしましたが、この例外が発生しました Unable to get provider android.support.v4.content.FileProvider: java.lang.SecurityException: Provider must not be exportedWhy I can't export a FileProvider ?

4

1 に答える 1

20

FileProvider を他のアプリケーションで利用できるようにすることは可能ですか?

はい。それが通常のポイントです。

FileProvider をエクスポートできないのはなぜですか?

それはあなたがaを使用する方法ではないからですFileProvider

背後にFileProviderあるポイントは、ファイルへの選択的なアクセスをサードパーティのアプリに与えることです。これは、プロバイダーの値の 1 つをサードパーティ アプリに渡すために使用するFLAG_GRANT_READ_URI_PERMISSIONおよび/またはFLAG_GRANT_WRITE_URI_PERMISSIONで行うことができます(たとえば、 with を使用して)。IntentUriACTION_VIEW IntentstartActivity()

ファイルの共有に関するトレーニング ガイドも参照してください。

于 2014-06-06T21:42:42.543 に答える