17441


Android の位置情報取得についてです

<http://techbooster.jpn.org/andriod/application/2525/>  
<http://seesaawiki.jp/w/moonlight_aska/d/%B0%CC%C3%D6%BE%F0%CA%F3%A4%F2%BC%E8%C6%C0%A4%B9%A4%EB>

などGPS取得のサンプルは多くありますがSDK23に対応したソースサンプルはほとんどありません  
checkSelfPermission に対応したサンプルコードの記載、またはその例の記載のあるサイトを教えてください。


CC BY-SA 3.0
2015-10-06T08:15:25.620
17313
2015-10-09T01:12:55.233
12608
question
android gps
Android　SDK23におけるGPS取得


Android SDK23のPermissionはRuntimeでリクエストが必要になります。

リクエスト方法の例は：

[code]

            if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                    Manifest.permission.ACCESS_COARSE_LOCATION)) {
                //ユーザーになぜ位置情報取得の許可が必要を説明して、リクエストします。
                Snackbar.make(contentView, R.string.access_location_permission_description, Snackbar.LENGTH_INDEFINITE)
                    .setAction(android.R.string.ok, new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            ActivityCompat.requestPermissions(KamelioLoginActivity.this,
                                    new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
                                    PERMISSION_REQUEST_ACCESS_COARSE_LOCATION);
                        }
                    }).show();
            } else {
                //ユーザーにしましたが、まだ許可されてないのでまたリクエストします。
                ActivityCompat.requestPermissions(KamelioLoginActivity.this,
                        new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
                        PERMISSION_REQUEST_ACCESS_COARSE_LOCATION);
            }
    
[/code]

リクエストの結果はonRequestPermissionsResultにでます：

[code]

        @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                                               @NonNull int[] grantResults) {
            if (requestCode == PERMISSION_REQUEST_ACCESS_COARSE_LOCATION) {
                if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    //許可されました。
                } else {
                    //許可されなかったので、メッセージ表示します。
                    Snackbar.make(contentView, R.string.access_location_permission_not_granted,
                            Snackbar.LENGTH_SHORT).show();
                }
            } else {
                super.onRequestPermissionsResult(requestCode, permissions, grantResults);
            }
        }
    
[/code]


CC BY-SA 3.0
2015-10-09T01:12:55.233
17441
2015-10-09T01:12:55.233
2437
17313
answer