実現したいこと
Android Studio Kotlinにおいて、GPSを利用して位置情報を取得したい。
前提
https://note.com/c_omachi/n/nef100a0a23ad
を参考にさせていただき、GPSを用いて位置情報を取得しようとしている。
書かれてあるコードはjavaだが、Android Studioの変換機能でKotlinに変換、実装している。
しかし様々なところでUnresolved referenceのエラーが出て、全く手が付けられなくなってしまった(その他のエラーも一か所あり)。
また、2. 位置情報を取得するリスナーの登録をするの章がよくわからず、赤い電球からエラーをなくした結果下のようなコードとなっている。
ほとんどのコードはとりあえずそのまま参考元のサイトから写させていただいている状態です。
発生している問題・エラーメッセージ
Unresolved reference: getSystemService Unresolved reference: ACCESS_FINE_LOCATION Unresolved reference: ACCESS_FINE_LOCATION <html>None of the following functions can be called with the arguments supplied:<br/>public open fun requestLocationUpdates(minTimeMs: Long, minDistanceM: Float, criteria: Criteria, pendingIntent: PendingIntent): Unit defined in android.location.LocationManager<br/>public open fun requestLocationUpdates(provider: String, locationRequest: LocationRequest, executor: Executor, listener: LocationListener): Unit defined in android.location.LocationManager<br/>public open fun requestLocationUpdates(provider: String, minTimeMs: Long, minDistanceM: Float, pendingIntent: PendingIntent): Unit defined in android.location.LocationManager<br/>public open fun requestLocationUpdates(provider: String, minTimeMs: Long, minDistanceM: Float, listener: LocationListener): Unit defined in android.location.LocationManager <html>None of the following functions can be called with the arguments supplied:<br/>public open fun requestLocationUpdates(minTimeMs: Long, minDistanceM: Float, criteria: Criteria, pendingIntent: PendingIntent): Unit defined in android.location.LocationManager<br/>public open fun requestLocationUpdates(provider: String, locationRequest: LocationRequest, executor: Executor, listener: LocationListener): Unit defined in android.location.LocationManager<br/>public open fun requestLocationUpdates(provider: String, minTimeMs: Long, minDistanceM: Float, pendingIntent: PendingIntent): Unit defined in android.location.LocationManager<br/>public open fun requestLocationUpdates(provider: String, minTimeMs: Long, minDistanceM: Float, listener: LocationListener): Unit defined in android.location.LocationManager Unresolved reference: ACCESS_FINE_LOCATION
該当のソースコード
Kotlin
1package com.example.CompetitionApp 2 3//その他のことに使っているパッケージもあるため、今回のコードにおいて使用していないものもあります。 4package com.example.CompetitionApp 5 6import android.content.Context 7import android.content.pm.PackageManager 8import android.location.Location 9import android.location.LocationListener 10import android.location.LocationManager 11import android.os.Bundle 12import androidx.appcompat.app.AppCompatActivity 13import androidx.core.app.ActivityCompat 14import androidx.navigation.fragment.NavHostFragment 15import androidx.navigation.ui.NavigationUI 16import androidx.work.Constraints 17import androidx.work.PeriodicWorkRequestBuilder 18import androidx.work.WorkManager 19import com.google.android.material.bottomnavigation.BottomNavigationView 20import java.time.Duration 21 22 23abstract class MainActivity : AppCompatActivity(), LocationListener { 24 //private lateinit var binding: FragmentRoutesearchBinding 25 26 private val manager = WorkManager.getInstance() 27 28 private var locationmanager: LocationManager? = null 29 30 override fun onCreate(savedInstanceState: Bundle?) { 31 super.onCreate(savedInstanceState) 32 setContentView(R.layout.activity_main) 33 34 //エラー1 Unresolved reference: getSystemService 35 locationmanager = (locationmanager) getSystemService(Context.LOCATION_SERVICE) 36 } 37 38 override fun onResume() { 39 super.onResume() 40 41 //エラー2、3 Unresolved reference: ACCESS_FINE_LOCATION 42 if (ActivityCompat.checkSelfPermission( 43 this, 44 Manifest.permission.ACCESS_FINE_LOCATION 45 ) != PackageManager.PERMISSION_GRANTED 46 ) { 47 ActivityCompat.requestPermissions( 48 this, 49 arrayOf<String>(Manifest.permission.ACCESS_FINE_LOCATION), 50 1 51 ) 52 return 53 } 54 //エラー4,5 長いやつ 55 locationmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 1, this) 56 locationmanager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 1, this) 57 } 58 59 override fun onStop() { 60 super.onStop() 61 if (locationmanager != null) { 62 63 //エラー6 Unresolved reference: ACCESS_FINE_LOCATION 64 if (ActivityCompat.checkSelfPermission( 65 this, 66 Manifest.permission.ACCESS_FINE_LOCATION 67 ) != PackageManager.PERMISSION_GRANTED 68 ) { 69 return 70 } 71 locationmanager!!.removeUpdates(this) 72 } 73 } 74 75 override fun onLocationChanged(location: Location) { 76 val text = "緯度:" + location.getLatitude() + "経度:" + location.getLongitude() 77 } 78} 79
試したこと
importしなければならないものに関しての確認、その他インターネットで調査をしたが、手掛かりは一つも手に入らなかった。
回答1件
あなたの回答
tips
プレビュー