Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

作成中のアプリが実行不可

位置情報を取得するアプリを製作中ですが、エラーが発生し、アプリが実行できない状態です。
getLatitude の部分が赤字で表示されているのでそこに問題があると思いますが、
エラーが解決できません。

有識者の方、ご教示お願い致します。

ボタンを押したときにset が呼び出される部分については問題なく出来ています。
また、位置情報の許可状態の確認についても問題なく出来ています。

    public void set(View view) {

        int permissionCheck = ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION);
        if (permissionCheck == 0){

            LocationManager ichi = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            ichi.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, this);
            double str1 = getLatitude();
            ((TextView) findViewById(R.id.textView4)).setText(str1);
            ichi.removeUpdates(this);
        }

        if (permissionCheck == -1){
            ((TextView) findViewById(R.id.textView4)).setText("許可なし");
        }
    }

Project Errors

Cannot resolve method 'requestLocationUpdates(java.lang.String, int, int, com.example.a004_test.MainActivity)'
Cannot resolve method 'getLatitude' in 'MainActivity'
Cannot resolve method 'setText(double)'
Cannot resolve method 'removeUpdates(com.example.a004_test.MainActivity)'
0

1Answer

getLatitudeLocationクラスのメソッドなので以下のようにする必要があるのではないでしょうか?

LocationManager ichi = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = ichi.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
double latitude = location.getLatitude();

余談ですがdoubleなのに変数名をstr1としておくのはやめておいたほうが良いです。

0Like

Comments

  1. @daifu9mogumogu

    Questioner

    回答ありがとうございます。
    確認してみます。

Your answer might help someone💌