2012-01-24 6 views
0

を持つ2つの別々のコンテンツのURIのIDを返します。Android:ディスレクシーコンテンツのuris。同じファイルは、チューを使用してスワップ桁

Intent intent = new Intent(); 
intent.setType("audio/mp3"); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
intent.addCategory(Intent.CATEGORY_OPENABLE); 
startActivityForResult(Intent.createChooser(intent, context.getResources().getString(R.string.select)), GET_URI); 

私はオーディオファイルを取得します。そのUriをローカルデータベースに保存して後でアクセスします。特定の曲を選択した場合、コンテンツURIを使用してMediaPlayerを作成しようとすると、uriはnull値を返します。私は再び何が起こるか見るために、その同じ曲のコンテンツのURIを取得しようとしました、そして十分に確認してください:

古い、壊れたコンテンツのURI:content://media/external/audio/media/2478

新しい、作業内容のURI:content://media/external/audio/media/2487

同一保存します最後の2桁がスワップされます。このUriを取得する方法は、私の2つの試みの間で変更されていません。これは既知の問題ですか? GoogleとSOが検索した結果は得られませんでした。しかし、これは、コンテンツuriがディスレクシアになる傾向がある場合に問題になります。なぜなら、曲のコンテンツuriを再取得するには本当の方法がないからです。これは、曲のファイルを参照する方法がないため手動で行う必要があります間違ったコンテンツuriを持つパス。

アイデア?

答えて

0

これらのうちのいくつかはディスアックスです!

コンテンツプロバイダーによって公開されるフィールドの一部はキャッシュされます。そして、彼らは新鮮であることが保証されていません。このURIを取得した手段を指定していないので、キャッシュされた値であるかどうかはわかりません。

コードを調べて自分で把握することができます。

http://grepcode.com/file_/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/android/provider/MediaStore.java

+0

はい、私はもう一度、昨日設定内容ウリはこの同じ問題で正確であることに失敗しました。私はコンテンツurisが時々価値を変えることができると気づいていない!私は将来、私は曲の場所を保存するときにファイルUriを使用するつもりだと思います。 – JMRboosties

+0

あなたが使用しているUrisの文書を必ず読んでください。 –

関連する問題