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
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码