PermissionHelperとPermissionUtilsの使用
1207 ワード
最近他の人の書いたコードを受け取って、1つの問題を発見して、位置決め権限を申請した後、初めて正常に地図の位置決めを表示することができません;同意してから、2回目でいいです.
研究コードによると、彼女は権限申請のツールクラスを使用していたが、コールバック部分が書かれていなかったため、申請しただけで、申請に成功した後、位置決め方法を再び呼び出すことができず、最初の地図が表示されなかった.
まず解決策を貼って、コールバックに注釈を書く必要があります.肝心なのは注釈を加えることです.そうしないと、成功した後、呼び出す方法が見つかりません.PermissionSuccessは,権限同意後に自動的に呼び出される.
申請権限はこのように書かれています.onCreateで呼び出せばいいです.
研究コードによると、彼女は権限申請のツールクラスを使用していたが、コールバック部分が書かれていなかったため、申請しただけで、申請に成功した後、位置決め方法を再び呼び出すことができず、最初の地図が表示されなかった.
まず解決策を貼って、コールバックに注釈を書く必要があります.肝心なのは注釈を加えることです.そうしないと、成功した後、呼び出す方法が見つかりません.PermissionSuccessは,権限同意後に自動的に呼び出される.
@PermissionSuccess(requestCode = AREA_CODE)
public void requestLocation() {
BMap.getInstance().requestLocation(true, new BMap.OnLocationListener() {
@Override
public void onLocationFinish(Position pos) {
mPos = pos;
initMapView(pos);
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
PermissionHelper.requestPermissionsResult(this, requestCode, permissions, grantResults);
}
申請権限はこのように書かれています.onCreateで呼び出せばいいです.
private void getPersimmions() {
PermissionHelper.with(this).
requestPermission(PERMISSION_AREA).
requestCode(AREA_CODE).
request();
}