PermissionHelperとPermissionUtilsの使用

1207 ワード

最近他の人の書いたコードを受け取って、1つの問題を発見して、位置決め権限を申請した後、初めて正常に地図の位置決めを表示することができません;同意してから、2回目でいいです.
研究コードによると、彼女は権限申請のツールクラスを使用していたが、コールバック部分が書かれていなかったため、申請しただけで、申請に成功した後、位置決め方法を再び呼び出すことができず、最初の地図が表示されなかった.
まず解決策を貼って、コールバックに注釈を書く必要があります.肝心なのは注釈を加えることです.そうしないと、成功した後、呼び出す方法が見つかりません.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();
}