2016-10-11 11 views
0

私はAndroidに基本的なファイルエクスプローラアプリを作成していますが、FileProviderを動作させる方法が残っていますので、Androidの基本的な割り当て以外のファイル領域にアプリのアクセスを許可できますあなたはデフォルトでAndroidのFileProviderの例

私が読んできたガイド(https://developer.android.com/training/secure-file-sharing/setup-sharing.htmlなど)に従ってみましたが、私は迷っています。具体的には、自分の@ xml/filepathsが私の中に登録していないという事実にあります。 "トップレベル要素が完成していません"というエラーが表示されます。ここで

は私のマニフェストです:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="org.hacktivity.datatemple"> 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 

    <provider 
     android:name="android.support.v4.content.FileProvider" 
     android:authorities="org.hacktivity.datatemple.fileprovider" 
     android:grantUriPermissions="true" 
     android:exported="false"> 
     <meta-data 
      android:name="android.support.FILE_PROVIDER_PATHS" 
      android:resource="@xml/filepaths" /> 
    </provider> 


    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 

そして、私のファイルのres/XML/filepaths.xmlに、私は次のようしている:

<paths> 
    <external-path path="/" name="root" /> 
</paths> 

答えて

1

I get the error: "Top level element is not completed."

戦術的に、問題はあなたということです開口部がない。<

paths> 
    <external-path path="/" name="root" /> 
</paths> 

戦略的には、FileProviderは、「Androidがデフォルトであなたに付与する基本的な配当以外のファイル領域への私のアプリのアクセスを許可する」とは関係ありません。 FileProviderを使用すると、いくつかの標準的な場所からファイルとして保存されたコンテンツにサードパーティ製アプリケーションのアクセスを許可することができます。

+0

"<"の間違いはここだけで、私のプロジェクトのコードではありません。 –

+0

FileProviderでない場合は、私が使っている他のさまざまなアプリのように、Androidのファイルシステムの残りの部分にアクセスすることができますか? –

+1

@GraffitiPlum:あなたが「Androidのファイルシステムの残りの部分」を意味するものは何か分かりません。根っこのデバイスで実行している場合を除いて、任意のファイルシステムの場所にアクセスすることはできません。 'READ_EXTERNAL_STORAGE'または' WRITE_EXTERNAL_STORAGE'パーミッションを保持することで(外部ストレージ)(https://commonsware.com/blog/2014/04/08/storage-situation-external-storage.html)を探検することができます実行時に)。 – CommonsWare