首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android 6.0 api 23 -获取权限后,我的位置为空

Android 6.0 api 23 -获取权限后,我的位置为空
EN

Stack Overflow用户
提问于 2016-08-07 00:42:40
回答 1查看 347关注 0票数 1

我在android 6.0中还有另一个定位问题。

我阅读了Android 6.0上的官方权限指南,现在可以工作了,但我的位置是空的,代码似乎被阻塞了!

这是OnCreate方法:

代码语言:javascript
复制
if ( Build.VERSION.SDK_INT >= 23 ) { //CONTROLLO PER ANDROID 6.0 O SUPERIORE
        int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION);

        if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

            if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                    Manifest.permission.ACCESS_FINE_LOCATION)) {
            } else {
                ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                        MY_PERMISSIONS_ACCESS_FINE_LOCATION);
            }
        }
    }else{
        Log.d("ANDROID","ANDROID SENZA FRONZOLI");
        //dA QUI IN POI MAIN STANDARD
    }

这是check权限类:

代码语言:javascript
复制
@Override
public void onRequestPermissionsResult(int requestCode,
                                       String permissions[], int[] grantResults) {
    switch (requestCode) {
        case MY_PERMISSIONS_ACCESS_FINE_LOCATION: {
            // If request is cancelled, the result arrays are empty.
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {


                Log.d("PERMESSI-fine", "PERMESSI OK");

                LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

                if ( ContextCompat.checkSelfPermission( this, android.Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED ) {

                    ActivityCompat.requestPermissions( this, new String[] {  android.Manifest.permission.ACCESS_FINE_LOCATION  },
                            MY_PERMISSIONS_ACCESS_FINE_LOCATION );
                }

                    Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);

                    if (location != null) {
                        double longitude = location.getLongitude();
                        double latitude = location.getLatitude();

                        Log.d("GPS-PROVIDER", String.valueOf(longitude));
                        Log.d("GPS-PROVIDER", String.valueOf(latitude));

                        // Toast.makeText(MainActivity.this, "GPS OK", Toast.LENGTH_SHORT).show();
                    }else{
                        Log.d("GPS","NIENTE ZONA VUOTA");
                        Log.d("GPS", String.valueOf(location));
                    }



            } else {


                Log.d("PERMESSI-fine","PERMESSE NO");
            }
            return;
        }

        // other 'case' lines to check for other
        // permissions this app might request
    }
}

代码不会给出错误,简单的什么都不会!空对象。现在我使用的是Android6.0模拟器。我没有这个操作系统版本的真正的设备。

请帮帮我。

EN

回答 1

Stack Overflow用户

发布于 2016-08-07 00:54:50

模拟器没有全球定位系统,因此位置提供商不会获得任何位置,或者all.you上任何最后已知的位置都需要添加全球定位系统数据。follow the linkandroid.developer source

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38806529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档