2012-01-24 11 views
5

Używam MediaStore.Images.Media.EXTERNAL_CONTENT_URI (zewnętrzny DB :: dane/dane/com.android.provider.media/external .db)) w mojej aplikacji do zapisywania obrazów z moją własną _display_name, na przykład: image_101.jpg, ale po pewnym czasie nazwa wyświetlana zmienia się na long no. jak 1327392947034.jpg. i następnym razem, kiedy pobieram obraz z moją _display_name (image_101.jpg), nic nie znalazłem w zewnętrznej db. Czy ktoś może mi powiedzieć, dlaczego tak się dzieje?Obrazy _display_name została zmieniona w zewnętrznym db na com.android.provider.media/external.db

Dzięki

Odpowiedz

0

wierzę, że to się dzieje, gdy MediaScanner dodaje plik do wewnętrznego MediaStore. Myślę, że numery są związane System.currentTimeMillis(); (hash, solone lub podobny). Myślę, że ma to na celu zmniejszenie prawdopodobieństwa kolizji nazw plików (dwa obrazy o tej samej nazwie).

Powinien istnieć sposób oddzielania nazw wyświetlanych od nazw plików. Kiedy mówisz "my _display_name", czy odnosisz się do kolumny w MediaStore, którą "dodałeś" (np. "Data2")? A może używasz kolumny DISPLAY_NAME (android.provider.MediaStore.MediaColumns)? Możesz również spojrzeć na umieszczanie niestandardowej nazwy w kolumnie DESCRIPTION.

Jednym z obejść byłoby zachowanie własnej bazy danych nazw wyświetlanych z kolumną dla identyfikatora w magazynie multimediów.

Także w jaki sposób wstawiasz obraz? Używasz zapytanie SQL lub jeden z:

insertImage(ContentResolver cr, String imgPath, String name, String desc)

metod z MediaStore.Images.Media?

Pomocne może być nieco więcej kodu, ale może niektóre z tych odpowiedzi mogą pomóc.

Powiązane problemy