ExifInterface getLatlong не работает в котлине
Я пытаюсь получить широту и долготу из захваченного изображения, но ExifInterface.getLatlong возвращает false
Я добавляю разрешения, но не работает
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION"/>
<uses-feature android:name="android.hardware.camera" android:required="true"/>
теперь изображение файла отображается хорошо, но var haslatlong всегда ложно. Как мне получить широту и долготу?
@RequiresApi(Build.VERSION_CODES.N)
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if(requestCode == REQUEST_IMAGE_CAPTURE && resultCode == Activity.RESULT_OK){
val bitmap: Bitmap
val file = File(curPhotoPath)
if(Build.VERSION.SDK_INT < 28)
{
val content = contentResolver.openInputStream(Uri.fromFile(file))
val location = ExifInterface(content)
var latlong = floatArrayOf()
var hasLatlong = false
hasLatlong = location.getLatLong(latlong)
if(hasLatlong) {
Log.e("lat", latlong[0].toString())
Log.e("long", latlong[1].toString())
}
}
else
{
val decode = ImageDecoder.createSource(
this.contentResolver,
Uri.fromFile(file)
)
val content = contentResolver.openInputStream(Uri.fromFile(file))
val location = ExifInterface(content)
var latlong = floatArrayOf(2F)
var hasLatlong = true
hasLatlong = location.getLatLong(latlong)
if(hasLatlong) {
Log.e("lat", latlong[0].toString())
Log.e("long", latlong[1].toString())
}
}
}
}