2016-04-05 12 views
2

Jellybean、KitKat、LollipopのAndroidアプリといくつかの異なるデバイスを開発しています。JellyBeanは画像キャプチャとは異なる動作をします

プロジェクトの初めに、「Samsung galaxy note 2014 edition」を使用してターゲットAPI「anroid-18」でJellybean APIライブラリを使用しました。 数ヶ月後、デバイスのOSがKitKat OSにアップグレードされたので、ライブラリを 'android-19'(バージョン番号が4.4.2)に変更しました。

私は今、Galaxy S tab 2という名前の新しいデバイスを持っています。

私は3つのバージョンと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 OS +キットカットのAPI =

ロリポップOS +キットカットのAPI OK = OK

問題のコードは、ウィキによる sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ path)));

答えて

1

ある=

キットカットOS +キットカットのAPIを失敗しました。新しいKitKatとLolipop OSをリリースし、Jellybeanから移ったときの各OSの記事は、新しい種類のランタイム環境に変更されました。この新しい環境でのみ互換性のあるコードは、Jellybeanのような他の環境のために別の方法を試す必要があります。 hereおよびhere