0

定期的な位置情報の更新のために融合Googleのapiを登録する場所トラッキングのためにアンドロイドバックグラウンドサービスを使用しています。 ロケーションの更新サービスを開始する際には、ロケーションの許可を求め、ユーザーが同意した場合はサービスを開始し、Google APIを登録します。Androidからアプリのクラッシュが許可されていないため、設定から取り消されました

しかし、ユーザーが許可を受けて、場所の更新に登録された場所apiを融合させると、後でユーザーがアプリのデバイス設定からロケーション権限を取り消してしまう問題が発生しました。 ユーザーがこれを実行すると、アプリが原因に

java.lang.SecurityExceptionクラッシュ起動します。クライアントはPRIORITY_HIGH_ACCURACYの場所を要求するACCESS_FINE_LOCATION権限を持っている必要があります。

このような状況を処理するにはどうすればよいですか?

+1

チェックして、あなたが場所を要求するたびにthoes 2つの権限を追加することを忘れないでください。 – ADM

+0

try catchブロックの中に入れて、アプリケーションの使用を継続する許可をユーザーに求める通知を出します。 – Kushan

+0

問題は、私はすでに場所apiを融合させたコントロールを設定しています。 – Pankaj

答えて

0

メインアクティビティでこのメソッドを追加し、onCreate()メソッドで呼び出します。

public boolean havePermission() { 
     if (Build.VERSION.SDK_INT >= 23) { 
      if (checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { 
       return true; 
      } else { 
       ActivityCompat.requestPermissions(this , new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 1); 
       return false; 
      } 
     } 
     else { 
      return true; 
     } 
    } 

と許可のためのあなたのmainifest.xml

+0

リスナーが既に設定しているときに問題を尋ねました。 – Pankaj

関連する問題