Jak odświeżyć / ponownie przeskanować pamięć SD w Androidzie 4.4 KitKat

13

W zeszłym tygodniu otrzymałem oficjalną aktualizację OTA KitKat dla mojego Nexusa 4 i od tego czasu nie mogę ponownie skanować karty SD. Wypróbowałem wiele różnych aplikacji do tego zadania, ale wszystkie z nich ulegają awarii podczas otwierania. Trochę badań pokazuje garstkę użytkowników z tym samym problemem.

Oto aplikacje, które wypróbowałem:

  • Rescan Media ( Aditya Talpade )
  • Skanuj ponownie kartę SD! ( sTOOPIDfiG )
  • Rescan SD Media Card ( RADEFFFACTORY )
  • SDrescan ( Benjamin Rosseaux ) mój stary tryb gotowości na Jelly Bean

Każda aplikacja ulega awarii po uruchomieniu. Czy ktoś może odświeżyć pamięć SD w KitKat?

zippanova
źródło

Odpowiedzi:

13

Nie działa wykrywanie usuniętych plików, ale po prostu uruchomiłem aplikację w Sklepie Play, która będzie działać na nowych i zaktualizowanych plikach: https://play.google.com/store/apps/details?id=com. gmail.jerickson314.sdscanner

Wykorzystuje obejście zainspirowane odpowiedzią Dana Hulme'a: używając interfejsu API, który jest tylko dla określonego pliku, ale ręcznie generując rekurencyjną listę plików na karcie. Wymaga to tylko uprawnień do odczytu na karcie SD, a nie rootowania, i ma przyjemny efekt uboczny, umożliwiając wiarygodny wskaźnik postępu.

Jeremy Erickson
źródło
To powinna być zaakceptowana odpowiedź; Odpowiedź Dana nie rozwiązuje problemu. Druga połowa problemu - pozbycie się usuniętych plików - jest rozwiązana przez ręczne wyczyszczenie pamięci podręcznej i danych usługi Media Service. Łatwo jest wejść w sytuację, w której musisz wykonać ponowne skanowanie - np. Kiedy zmieniasz nazwę folderu.
Barry Kelly,
Od czasu napisania tej odpowiedzi zaimplementowałem funkcję odczytu bazy danych mediów. O ile mi wiadomo, działa w celu wykrycia usuniętych plików. Czasami usunięte pliki w ogóle nie pojawiają się w medialnej bazie danych, co, jak podejrzewam, oznacza, że ​​są usuwane przez Muzykę Google Play lub coś, zanim dostanie się do nich skaner SD.
Jeremy Erickson,
Irytujące musiałem skopiować domyślne dzwonki, alarmy, dźwięki powiadomień itp. Do lokalizacji w / sdcard, aby znaleźć je ponownie w Ustawieniach.
Barry Kelly,
Niestety aplikacja wydaje się już nie być w sklepie
Edward Falk
6

Nie możesz już używać takich aplikacji. Ponieważ wiele aplikacji nadużywało MEDIA_MOUNTEDzamiaru transmisji, aby spowodować ponowne skanowanie całego systemu plików (rozładowanie baterii) po zmianie tylko jednego pliku, KitKat ma nowe ograniczenie, że tylko aplikacje systemowe mogą nadawać ten zamiar. Aplikacje, które spróbują, otrzymają komunikat SecurityException, który domyślnie powoduje wyświetlenie okna dialogowego „... zostało zatrzymane”.

Istnieje alternatywny mechanizm dla aplikacji, która mówi, że zmieniła konkretny plik i powoduje, że plik jest skanowany ponownie (nie rekurencyjnie), ale (a) nie ma zamiany skanującej cały system plików, ponieważ byłoby to nadużywane w ten sam sposób ; i (b) to zależy od aplikacji. To nie jest coś, co możesz zmienić jako użytkownik.

Aplikacja korzystająca z byłaby w stanie sprawić, by działała w taki sam sposób, jak 4.3 i wcześniejsze, ale ponownie, aby poprosić o rootowanie, trzeba by ją napisać. Zrootowanie urządzenia nie sprawi, że stare aplikacje zaczną ponownie działać.

Aby uzyskać więcej informacji technicznych, zobacz Jak uruchomić MediaScan na Nexusie 7? na Stack Overflow, naszej siostrzanej stronie z pytaniami dotyczącymi programowania.

Dan Hulme
źródło
To nie jest odpowiedź na pytanie. Moje media są całkowicie niedostępne w KitKat tylko dlatego, że zmieniłem nazwę folderu. Usunięcie funkcji bez podania alternatywy jest całkowicie zepsute.
Barry Kelly,
3

To bardzo dobre pytanie i widzę, że już na nie odpowiedziano. Napisałem małą aplikację, aby rozwiązać ten problem specjalnie dla Kit Kit (Android 4.4+). Moja aplikacja działa na wszystkich telefonach.

Tutaj:

https://play.google.com/store/apps/details?id=burrows.apps.sdcard

Działa to na Nexusie 5!

Daj mi znać, jeśli to ci pomoże!

Oświadczenie: Napisałem tę aplikację.

Jared Burrows
źródło