普通网友 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 maple软件,用solve求反函数出现rootof,怎么办?
    • ¥50 汇编语言除法溢出问题
    • ¥65 C++实现删除N个数据列表共有的元素
    • ¥15 Visual Studio问题
    • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
    • ¥20 求一个html代码,有偿
    • ¥100 关于使用MATLAB中copularnd函数的问题
    • ¥20 在虚拟机的pycharm上
    • ¥15 jupyterthemes 设置完毕后没有效果
    • ¥15 matlab图像高斯低通滤波