普通网友 2014-07-03 00:34 采纳率: 33.3%
浏览 999

loaction在真机当中获取不到经纬度,但是虚拟机DDMS当中却可以

package com.example.locationtest;

import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

LocationManager lm;
TextView show;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    lm=(LocationManager) getSystemService(Context.LOCATION_SERVICE);
    show=(TextView) super.findViewById(R.id.show);

    //从GPS获取最近的最近定位信息
    Location loaction=lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);

    Log.e("location", loaction+"");

    //更新界面显示
    updateView(loaction);

    //lm.setTestProviderEnabled("gps",true); 

    //周期性的获取定位信息,并触发监听器
    /**
     * provider
     * 最小时间
     * 距离
     */
    //每隔3s更新一下数据
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 8, new LocationListener() {

        @Override
        public void onStatusChanged(String arg0, int arg1, Bundle arg2) {


        }

        @Override
        public void onProviderEnabled(String provider) {

            updateView(lm.getLastKnownLocation(provider));
        }

        @Override
        public void onProviderDisabled(String arg0) {

            updateView(null);
        }

        @Override
        public void onLocationChanged(Location loaction) {
            updateView(loaction);
        }
    });


}


//更新EditText当中的内容
public void updateView(Location loaction){

    if(loaction!=null){
        StringBuilder sb=new StringBuilder();

        Log.e("经度", loaction.getLongitude()+"");

        sb.append("实时位置信息:");
        sb.append("\n经度:"+loaction.getLongitude());
        sb.append("\n维度:"+loaction.getLatitude());
        sb.append("\n高度:"+loaction.getAltitude());
        sb.append("\n速度:"+loaction.getSpeed());
        sb.append("\n方向:"+loaction.getBearing());

        show.setText(sb.toString());

    }
    else{
        show.setText("");
    }

}   

}

权限都已经加完了

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 对于相关问题的求解与代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作
    • ¥15 求NPF226060磁芯的详细资料
    • ¥15 使用R语言marginaleffects包进行边际效应图绘制