上の任意の場所からファイルを.txtでは:読むが、私は、ユーザーがファイルを選択できるように、このコードを持っている私のアプリでは携帯電話
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("text/plain");
startActivityForResult(intent,1);
ユーザーがさえから、どこか彼の電話での.txtファイルを選択することができますグーグルドライブ。ファイルの選択が完了すると、そのファイルに対応するUriオブジェクトを取得します。問題は、それが有効でないためにこのUriをファイルの読み込みに使用できないことです。ここに私のコードです:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
Uri uri = data.getData();
File file = new File(uri.toString());
try{
InputStream inputStream = new FileInputStream(file);
int content;
while ((content = inputStream.read()) != -1) {
Log.d("===>", String.valueOf((char) content));
}
}catch (Exception e){
Log.d("===>", e.toString());
}
}
}
}
私はいつもfileNotFoundExceptionを取得します。私の質問は、選択されたファイルを読み込む方法があるかどうかです(あらかじめその場所がわからなくても)。それ以外の場合は、選択したファイルを簡単に入手できるフォルダにコピーする方法がありますか?
私はちょうどcontentProviderのドキュメントを見ていました。正に、私は何をすべきか分かりません。私はcontentProviderクラスから拡張するクラスを作成する必要がありますか? – Mtoypc
@Metypc:申し訳ありません、私は 'ContentResolver'を意味しました - 私は自分の答えを修正しました。 'Activity'のような便利な' Context'で 'getContentResolver()'を呼び出してください。次に、 'ContentResolver'で' openInputStream() 'を呼び出します。 – CommonsWare
ありがとう、あなたは今日私を2回救った – Mtoypc