2016-04-05 16 views
2

görüntü yakalama ile farklı şekilde davranır Jellybean, KitKat ve Lollipop için bir Android uygulaması geliştiriyorum ve birkaç farklı cihaz.JellyBean,

Projenin başlangıcında, 'Samsung galaxy note 2014 edition' kullanılarak hedef API 'anroid-18' ile Jellybean API kütüphanesini kullandım. Birkaç ay sonra, cihazın işletim sistemi KitKat işletim sistemine yükseltmeye başladı, böylece kütüphaneyi 'android-19' olarak değiştirdim.

Artık Galaxy S sekmesi 2 adlı yeni bir cihazım var.

Şimdi üç sürüm ve iki aygıtım var ve varsayılan API'm 4.4.2. uygulamasını kullanarak resim çekerken

sorun

oluştu:

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))); 
} 

Aşağıdaki kod Jellybean hiçbir sorunu var:

Intent mediaScanIntent 
      = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); 
Uri contentUri = Uri.parse("file://"+ path); 
mediaScanIntent.setData(contentUri); 
sendBroadcast(mediaScanIntent); 

neden oluyor?

Kitkat İS + Kitkat API Başarısız

Jellybean İS + Kitkat API = = Tamam =

Lolipop İS + KitKat API Tamam

Sorunlu kod wiki göre sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ path)));

cevap

1

olduğunu Yeni KitKat ve Lolipop işletim sistemlerini piyasaya sürdüğü ve Jellybean'dan taşındığı her bir işletim sistemi makalesi referansları, yeni bir çalışma zamanı ortamına dönüştü. Sadece bu yeni ortamda uyumlu olan kod, Jellybean gibi diğer ortamlar için farklı bir yöntem denemeniz gerekecek. Bkz. here ve here