質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

1048閲覧

リアルタイムで緯度、経度を取得

eotw

総合スコア48

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2022/05/02 09:50

前提

本日Android Studioを触り始めた初心者です。

実現したいこと

リアルタイムで緯度、経度を取得しようとしています。
書籍のサンプルコードを参考にしていますが、エラーとなり、原因がわからないので教えて頂きたいです。

発生している問題・エラーメッセージ

Cannot access '<init>': it is private in 'LocationRequest'
Unresolved reference: interval
Unresolved reference: fastestInterval
Unresolved reference: priority
Unresolved reference: PRIORITY_HIGH_ACCURACY
Unresolved reference: textView
Variable expected
Type mismatch: inferred type is android.location.LocationRequest but com.google.android.gms.location.LocationRequest! was expected

該当のソースコード

kotlin

1package com.example.showtextonmapapp 2 3import android.Manifest 4import android.content.pm.PackageManager 5import android.location.Location 6import androidx.appcompat.app.AppCompatActivity 7import android.os.Bundle 8import android.view.WindowManager.LayoutParams.* 9import android.widget.Toast 10import androidx.core.app.ActivityCompat 11import com.google.android.gms.location.FusedLocationProviderClient 12import com.google.android.gms.location.LocationCallback 13import com.google.android.gms.location.LocationResult 14import com.google.android.gms.location.LocationServices 15 16import com.google.android.gms.maps.CameraUpdateFactory 17import com.google.android.gms.maps.GoogleMap 18import com.google.android.gms.maps.OnMapReadyCallback 19import com.google.android.gms.maps.SupportMapFragment 20import com.google.android.gms.maps.model.LatLng 21import android.location.LocationRequest 22 23class MainActivity : AppCompatActivity(), OnMapReadyCallback { 24 25 private lateinit var mMap: GoogleMap 26 private val MY_PERMISSION_REQUEST_ACCESS_FINE_LOCATION = 1 27 28 private lateinit var fusedLocationProviderClient : FusedLocationProviderClient 29 private lateinit var lastLocation: Location 30 private var locationCallback : LocationCallback? = null 31 32 override fun onCreate(savedInstanceState: Bundle?) { 33 super.onCreate(savedInstanceState) 34 setContentView(R.layout.activity_main) 35 36 //画面をスリープにしない 37 window.addFlags(FLAG_KEEP_SCREEN_ON) 38 39 // Obtain the SupportMapFragment and get notified when the map is ready to be used. 40 val mapFragment = supportFragmentManager 41 .findFragmentById(R.id.map) as SupportMapFragment 42 mapFragment.getMapAsync(this) 43 fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this) 44 } 45 46 override fun onMapReady(googleMap: GoogleMap) { 47 mMap = googleMap 48 49 checkPermission() 50 } 51 52 private fun checkPermission() { 53 if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { 54 myLocationEnable() 55 } else { 56 requestLocationPermission() 57 } 58 } 59 60 private fun requestLocationPermission() { 61 if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION)) { 62 //許可が拒否された場合 63 ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), MY_PERMISSION_REQUEST_ACCESS_FINE_LOCATION) 64 } else { 65 //許可も求めていない場合 66 ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), MY_PERMISSION_REQUEST_ACCESS_FINE_LOCATION) 67 } 68 } 69 70 override fun onRequestPermissionsResult( 71 requestCode: Int, 72 permissions: Array<out String>, 73 grantResults: IntArray 74 ) { 75 super.onRequestPermissionsResult(requestCode, permissions, grantResults) 76 when(requestCode) { 77 MY_PERMISSION_REQUEST_ACCESS_FINE_LOCATION->{ 78 if (permissions.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 79 //許可された 80 myLocationEnable() 81 } else { 82 showToast("現在位置は表示できません") 83 } 84 } 85 } 86 } 87 88 private fun myLocationEnable() { 89 if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { 90 mMap.isMyLocationEnabled = true 91 val locationRequest = LocationRequest().apply { 92 interval = 10000 93 fastestInterval = 5000 94 priority = LocationRequest.PRIORITY_HIGH_ACCURACY 95 } 96 locationCallback = object : LocationCallback() { 97 override fun onLocationResult(locationResult: LocationResult?) { 98 if (locationResult?.lastLocation != null) { 99 lastLocation = locationResult.lastLocation 100 val currentLatLng = LatLng(lastLocation.latitude, lastLocation.longitude) 101 mMap.moveCamera(CameraUpdateFactory.newLatLng(currentLatLng)) 102 textView.text = "Lat:${lastLocation.latitude}, Lng:${lastLocation.longitude}" 103 } 104 } 105 } 106 fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, null) 107 } 108 } 109 110 private fun showToast(msg: String) { 111 val toast = Toast.makeText(this, msg, Toast.LENGTH_LONG) 112 toast.show() 113 } 114 115 override fun onPause() { 116 super.onPause() 117 if (locationCallback != null) { 118 fusedLocationProviderClient.removeLocationUpdates(locationCallback) 119 } 120 } 121 122}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2022/05/02 18:20 編集

LocationRequest クラスのオブジェクトの生成の仕方はあっているでしょうか?
guest

回答1

0

ベストアンサー

 Cannot access '<init>': it is private in 'LocationRequest'

「 '<init>'にアクセスできません:'LocationRequest'ではプライベートです」by Google翻訳

LocationRequest のコンストラクタが private なのでそのようには生成できないようです。

Type mismatch: inferred type is android.location.LocationRequest but com.google.android.gms.location.LocationRequest! was expected

「タイプの不一致:推測されるタイプはandroid.location.LocationRequestですが、com.google.android.gms.location.LocationRequest!期待されていた」by Google翻訳

LocationRequest を間違えているようです。
import を確認しては如何でしょうか。

投稿2022/05/03 08:25

編集2022/05/03 08:28
jimbe

総合スコア12612

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問