当前位置: 代码迷 >> Android >> 请问手动接受GPS数据
  详细解决方案

请问手动接受GPS数据

热度:41   发布时间:2016-05-01 22:03:01.0
请教手动接受GPS数据
小弟最近研究接受GPS信号,需要手动得到GPS数据,在网上看见很多代码,我做了如下修改,但是数据无法更新。使用模拟器发送GPS数据,debug看到每次按键获得的都是最开始的老数据,没有更新,请达人们指教。。。。
Java code
public class LocationTest extends Activity{    LocationManager locManager;    EditText show;    private Button mButton;    @Override    public void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);         show = (EditText) findViewById(R.id.show);                // 从GPS获取最近的最近的定位信息        Location location = locManager.getLastKnownLocation(            LocationManager.GPS_PROVIDER);        // 使用location根据EditText的显示,自定义函数        updateView(location);        mButton=(Button) findViewById(R.id.button1);        //做了个按键,手动收数据        mButton.setOnClickListener(new OnClickListener()         {                @Override            public void onClick(View v) {                //不是说这句话是接受最新数据吗??                Location location = locManager.getLastKnownLocation(                        LocationManager.GPS_PROVIDER);                                updateView(location);            }        });                 //下面是原有循环接受的代码,模拟器下测试可用        // 设置每3秒获取一次GPS的定位信息,移动8m一会运行        /*locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER             , 3000, 8, new LocationListener()        {            @Override            public void onLocationChanged(Location location)            {                // 当GPS定位信息发生改变时,更新位置                updateView(location);            }            @Override            public void onProviderDisabled(String provider)            {//                GPS关闭,清空信息                updateView(null);                            }            @Override            public void onProviderEnabled(String provider)            {                // 当GPS LocationProvider可用时,更新位置                updateView(locManager                    .getLastKnownLocation(provider));                            }            @Override            public void onStatusChanged(String provider, int status,                Bundle extras)            {            }        }); */    }        // 更新EditText中显示的内容    public void updateView(Location newLocation)    {        if (newLocation != null)        {            StringBuilder sb = new StringBuilder();            sb.append("实时的位置信息:\n");            sb.append("经度:");            sb.append(newLocation.getLongitude());            sb.append("\n纬度:");            sb.append(newLocation.getLatitude());        }    }}


------解决方案--------------------
不可能,你只能利用事件驱动得到最新的GPS数据。
  相关解决方案