Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用户启用位置使用后位置仍为空_Java_Android_Location_Android Gps - Fatal编程技术网

Java 用户启用位置使用后位置仍为空

Java 用户启用位置使用后位置仍为空,java,android,location,android-gps,Java,Android,Location,Android Gps,当我试图获取用户的最后一个已知位置时,在用户同意应用程序使用他自己的位置之后,我发现该位置仍然为空 这是我的密码: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode){

当我试图获取用户的最后一个已知位置时,在用户同意应用程序使用他自己的位置之后,我发现该位置仍然为空

这是我的密码:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode){
            case REQUEST_LOCATION:
                switch (resultCode){
                    case Activity.RESULT_OK: {
                        getLastKnowLocation();
                        break;
                    }
                    case Activity.RESULT_CANCELED:{
                        Toast.makeText(MyActivity.this, "Location not enabled.", Toast.LENGTH_LONG).show();
                        break;
                    }
                    default:{
                        break;
                    }
                }
        }
    }

protected void getLastKnowLocation() {
        if (checkPermission(FINE_LOCATION) == DENIDED) {
            requestPermissionLocation(OBTAINGLASTKNOWLOCATION_REQUESTCODE);
            return;
        }
        flpc.getLastLocation().addOnSuccessListener(new OnSuccessListener<Location>() {
            @Override
            public void onSuccess(final Location location) {
                if (location != null && onSuccessListener != null) onSuccessListener.onSuccess(location);
                else {
                    displayLocationSettingsRequest(onSuccessListener);
                }
            }
        });
    }
@覆盖
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
开关(请求代码){
案例请求位置:
开关(结果代码){
案例活动。结果\u正常:{
getLastKnowLocation();
打破
}
案例活动.RESULT\u已取消:{
Toast.makeText(MyActivity.this,“位置未启用”,Toast.LENGTH_LONG.show();
打破
}
默认值:{
打破
}
}
}
}
受保护的无效getLastKnowLocation(){
if(检查许可(罚款位置)=拒绝){
requestPermissionLocation(获取GlastKnowLocation\u REQUESTCODE);
返回;
}
flpc.getLastLocation().addOnSuccessListener(新OnSuccessListener()){
@凌驾
成功时的公共无效(最终位置){
如果(location!=null&&onSuccessListener!=null)onSuccessListener.onSuccess(location);
否则{
displayLocationSettingsRequest(onSuccessListener);
}
}
});
}
还有什么方法可以强制应用程序获取用户的位置?
顺便说一句,我在这里没有使用任何地图。

你在requestPermissionLocation(获取GlastKnowLocation\u REQUESTCODE)方法中做了什么?我只是请求用户允许应用程序访问他的位置信息GetLastKnowLocation可以始终返回null。位置启用并不意味着手机正在积极跟踪它。如果必须获取位置,请使用requestSingleUpdate。getLaskKnownLocation是一种仅用于快速结果的优化,不应依赖它。@GustavoOliveira,您是否实现了onRequestPermissionsResult方法?@ShubhamRaitka我没有,但它与访问位置信息的权限无关。这可能发生在用户给予许可后,由于某种原因,他决定不再使用他的位置,例如,他的智能手机可能电池电量不足。