无法在我的天气中获取当前位置 App.getlatitude() 和 getlongitude() 不起作用

如何解决无法在我的天气中获取当前位置 App.getlatitude() 和 getlongitude() 不起作用

安卓 在我的天气应用程序中,我无法获取当前位置并访问其温度。我认为 api 没有问题,因为我的天气应用程序在输入城市名称搜索天气时运行良好。但是该应用程序没有显示我当前位置的天气。我还发现 Onprovider 禁用的 Toast 消息正在显示

private void getWeatherForCurrentLocation() {

    mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    mLocationListner = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {


            String Latitude = String.valueOf(location.getLatitude());
            String Longitude = String.valueOf(location.getLongitude());
            Log.e("state",Latitude);


            RequestParams params =new RequestParams();
            params.put("lat",Latitude);
            params.put("lon",Longitude);
            params.put("appid",api);
            letsdoSomeNetworking(params);




        }

        @Override
        public void onStatusChanged(String provider,int status,Bundle extras) {

        }

        @Override
        public void onProviderEnabled(String provider) {

        }

        @Override
        public void onProviderdisabled(String provider) {
           // Toast.makeText(MainActivity.this,"can not get",Toast.LENGTH_SHORT).show();
        }
    };


    if (ActivityCompat.checkSelfPermission(this,Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this,Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        // Todo: Consider calling
        //    ActivityCompat#requestPermissions
        // here to request the missing permissions,and then overriding
        //   public void onRequestPermissionsResult(int requestCode,String[] permissions,//                                          int[] grantResults)
        // to handle the case where the user grants the permission. See the documentation
        // for ActivityCompat#requestPermissions for more details.
        ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},REQUEST_CODE);
        return;
    }
    mLocationManager.requestLocationUpdates(Location_Provider,MIN_TIME,MIN_disTANCE,mLocationListner);

}


@Override
public void onRequestPermissionsResult(int requestCode,@NonNull String[] permissions,@NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode,permissions,grantResults);


    if(requestCode==REQUEST_CODE)
    {
        if(grantResults.length>0 && grantResults[0]==PackageManager.PERMISSION_GRANTED)
        {
            Toast.makeText(MainActivity.this,"Location get Succesffully",Toast.LENGTH_SHORT).show();
            getWeatherForCurrentLocation();
        }
        else
        {
            //user denied the permission
        }
    }


}

解决方法

自从我上次使用 android studio 已经有很长时间了,但我记得你必须给 permession 使用提供程序。您必须在应用程序标记的 manifest.xml 中插入这一行。 如果此后它不起作用,请检查此https://developer.android.com/guide/topics/manifest/provider-element 希望有用,我不太记得了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?