Obserwowanie zmian w obserwatorze treści Androida dla Audio.Media.EXTERNAL_CONTENT_URI
Zajmuję się tworzeniem aplikacji na Androida, w której muszę wykrywać zmiany na karcie SD z systemem Android dla plików audio z nazwą pliku, ścieżką pliku i wykonywaną na nim operacją. Przykład, jeśli dodam plik na mojej karcie SD, chcę wiedzieć
Nazwa dodawanego plikuŚcieżka do plikuOperacja - DodajPoprzednio próbowałem obserwatora plików, ale do tego muszę go zastosować w każdym katalogu. Szukałem więc innego rozwiązania i dostałem informacje oAudio.Media.EXTERNAL_CONTENT_URI. Następnie stworzyłem takiego obserwatora treści
UriObserver.java - który jest obserwatorem treści
class UriObserver extends ContentObserver {
public UriObserver(Handler handler) {
super(handler);
// TODO Auto-generated constructor stub
}
@Override
public void onChange(boolean selfChange) {
// TODO Auto-generated method stub
super.onChange(selfChange);
Log.d("INSTANT", "GETTING CHANGES");
}
}
To jest kod do rejestracji
UriObserver observer = new UriObserver(new Handler());
Log.d("INSTANT", "registered content observer");
this.getApplicationContext()
.getContentResolver()
.registerContentObserver(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, false,
observer);
Log.d("INSTANT", "registered content observer");
Dało mi to znać, że nastąpiła pewna zmiana w sdcard związanej z plikami audio. Ale nie daje żadnych informacji o tym, który plik został dodany, edytowany lub usunięty.
Potem szukałem rozwiązania i dostałem ten post
Android: Jak wykryć zmianę w MediaStore po połączeniu przez MTP
W tym poście podany jest kodBhiefer jako odpowiedź, która moim zdaniem mogłaby zadziałać, więc próbowałem ją zaimplementować, ale nie jestem w stanie tego zrobić.
Co mogę na to zrobić?
AktualizacjaCzy mogę zapytać Audio.Media.EXTERNAL_CONTENT_URI o najnowsze zmiany? Ten kod:
mCursor = context.getContentResolver().query(
Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, "_id");
mCursor.moveToLast();
nie podaje najnowszych zmian. Czy jest jakaś inna metoda na uzyskanie najnowszych zmian?