Duffy_Chung 2016-03-08 15:21 采纳率: 0%
浏览 1319

android无法显示地理位置信息,求帮忙看下代码

 package com.example.locationtest;

import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity 
{
    private TextView positionTextView;
    private LocationManager locationManager;
    private String provider;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        positionTextView=(TextView)findViewById(R.id.position_text_view);
        locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
        List<String> providerList=locationManager.getProviders(true);
        if(providerList.contains(LocationManager.GPS_PROVIDER))
        {
            provider=LocationManager.GPS_PROVIDER;
        }
        else if(providerList.contains(LocationManager.NETWORK_PROVIDER))
        {
            provider=LocationManager.NETWORK_PROVIDER;
        }
        else
        {
            Toast.makeText(this, "No location provider to use", Toast.LENGTH_SHORT).show();
            return;
        }
        Location location=locationManager.getLastKnownLocation(provider);
        if(location != null)
        {
            showLocation(location);
        }
        locationManager.requestLocationUpdates(provider,5000, 1, locationListener);
    }

    protected void onDestroy()
    {
        super.onDestroy();
        if(locationManager != null)
        {
            locationManager.removeUpdates(locationListener);
        }
    }

    LocationListener locationListener=new LocationListener()
        {
            @Override
            public void onStatusChanged(String provider,int status,Bundle extras)
            {

            }

            @Override
            public void onProviderEnabled(String provider) 
            {

            }
            @Override
            public void onProviderDisabled(String provider) 
            {

            }

            @Override
            public void onLocationChanged(Location location) 
            {
                showLocation(location);
            }
        };


    private void showLocation(Location location) 
    {
        String currentPosition="latitude is"+location.getLatitude()+"\n"+"longitude is"+location.getLongitude();
        positionTextView.setText(currentPosition);
    }
}

  • 写回答

5条回答 默认 最新

  • 简一_hz 2016-03-09 01:11
    关注

    你配置文件中有没有加权限?

    评论

报告相同问题?

悬赏问题

  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?