Я разрабатываю приложение для Android для Jellybean, KitKat и Lollipop и нескольких разных устройств.
В начале проекта я использовал библиотеку API Jellybean с целевым API «anroid-18», используя «Samsung galaxy note 2014 edition». Через несколько месяцев ОС устройства начала обновляться до ОС KitKat, поэтому я сменил библиотеку на «android-19», в которой номер версии 4.4.2.
У меня есть новое устройство под названием Galaxy S tab 2.
Сейчас у меня есть три версии и два устройства, и мой API по умолчанию — 4.4.2.
Проблема возникла при захвате изображений с помощью приложения:
if (Build.VERSION.SDK_INT >= AlopexBuild.VERSION_SUPPORT.KITKAT) {
Intent mediaScanIntent
= new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri contentUri = Uri.parse("file://"+ path);
mediaScanIntent.setData(contentUri);
sendBroadcast(mediaScanIntent);
} else {
sendBroadcast(
new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ path)));
}
Следующий код не вызывает проблем в Jellybean:
Intent mediaScanIntent
= new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri contentUri = Uri.parse("file://"+ path);
mediaScanIntent.setData(contentUri);
sendBroadcast(mediaScanIntent);
Почему это происходит?
ОС Jellybean + API Kitkat = Ошибка
ОС Kitkat + API Kitkat = ОК
ОС Lollipop + API KitKat = ОК
Проблемный код: sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ path)));