Код GetLocation, разработанный в более старой версии Android Studio, не будет работать в последней версии Android StudioAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Код GetLocation, разработанный в более старой версии Android Studio, не будет работать в последней версии Android Studio

Сообщение Anonymous »

Недавно я загрузил и обновил свою Android Studio до последней и самой лучшей версии, надеясь, что она решит некоторые из моих проблем. Оказывается, мои старые коды, разработанные в предыдущей версии Android Studio, не будут работать в последней версии. Итак, по сути, я написал код для получения данных GPS моего телефона (долгота и широта) следующим образом и работал безупречно, но я даже не могу скомпилировать его в последней версии Narwal.

Код: Выделить всё

//in AndroidManifest




































//In MainActivity
class MainActivity : AppCompatActivity() {
private lateinit var locationManager: LocationManager

...
private val requestPermissionLauncher =
registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted: Boolean ->
if (isGranted) {
Toast.makeText(this, "permission granted", Toast.LENGTH_SHORT).show()
} else {
// Permission is denied, handle the case appropriately
Toast.makeText(this, "permission denied", Toast.LENGTH_SHORT).show()
}
}

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

// Example of how to trigger the permission request
if (!hasSmsPermission2(this)) {
requestPermissionLauncher.launch(android.Manifest.permission.ACCESS_FINE_LOCATION)
} else {

Toast.makeText(this, "ACCESS_FINE_LOCATION already granted", Toast.LENGTH_SHORT).show()
}

// Example of how to trigger the permission request
if (!hasSmsPermission3(this)) {
requestPermissionLauncher.launch(android.Manifest.permission.ACCESS_COARSE_LOCATION)
} else {
Toast.makeText(this, "ACCESS_COARSE_LOCATION already granted", Toast.LENGTH_SHORT).show()
}

locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 0f, this)
}

override fun onLocationChanged(location: Location) {
val latStr= location.latitude.toString()
val longStr = location.longitude.toString()
}
}
Как я уже сказал, этот код компилируется и работает так, как и ожидалось. На самом деле он возвращает широту и долготу моего мобильного телефона, но когда я беру тот же код и компилирую его в последней версии Android Studio, он терпит неудачу, точнее, в строке locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 0f, this) с ошибкой «нет перегруженной функции с этими параметрами».
Я понимаю, что между версиями студии Android будут различия, но не полностью скомпилировать. Любая помощь будет оценена по достоинству.

Подробнее здесь: https://stackoverflow.com/questions/798 ... e-latest-a
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»