当前位置:编程学习 > wap >>

我写了个GPS的小程序,得借助于导航软件才能得到数据,请大家帮我一下.

        mLocManager = (LocationManager)mScreen.getSystemService(Context.LOCATION_SERVICE);;

        Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setCostAllowed(true);
        criteria.setPowerRequirement(Criteria.POWER_LOW);
        String provider = mLocManager.getBestProvider(criteria, true);
        log("provider is :"+ provider);

        try {
            if (provider == null) {
                provider = mLocManager.getProviders(true).get(0);
                log("get 0 provider is :"+ provider);
            }
        } catch (IndexOutOfBoundsException e) {

        } finally {
            if(provider == null) {
                Toast.makeText(mScreen, "Starting GPS alarm failed.\nNo provider is available.", Toast.LENGTH_LONG).show();
                return;
            }
        }

        Location location = mLocManager.getLastKnownLocation(provider);
        mScreen.updateLocation(location);

        mLocManager.requestLocationUpdates(provider, 2000, 10,
                this);
这是我的代码. --------------------编程问答-------------------- 我想你可能需要打开硬件GPS。 --------------------编程问答-------------------- 我已经在设置中把GPS开了. --------------------编程问答--------------------
引用 2 楼 speedcoder 的回复:
我已经在设置中把GPS开了.

你想要问什么问题,有报错吗 --------------------编程问答-------------------- 没怎么研究过这一块,我写的是provider  == null
然后换成  provider = locationManager.NETWORK_PROVIDER; --------------------编程问答-------------------- 我写的GPS定位,测试过了。

LocationManager locationManager=(LocationManager)MylocationActivity.this.getSystemService(Context.LOCATION_SERVICE);
     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new TestLocationListener());

一个监听类
    private class TestLocationListener implements LocationListener
    {

@Override
public void onLocationChanged(Location l)
{
// TODO Auto-generated method stub
textX.setText("X="+l.getLongitude());
textY.setText("Y="+l.getLatitude());

}

@Override
public void onProviderDisabled(String arg0)
{
// TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String arg0)
{
// TODO Auto-generated method stub

}

@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2)
{
// TODO Auto-generated method stub

}
    
    
    } --------------------编程问答-------------------- 还需要权限哦

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

那个时候做过一次,利用GPS得到坐标,然后利用谷歌的服务。得到地理位置的名称

好像百度也有定位API,也可以试试 --------------------编程问答-------------------- 是不是你用定位软件可以得到数据,而用你自己写的程序得不到喽?

如果是的话,那是应为你gps没有处于START状态,HAL不会上传数据,而你作用的那个获取gps数据的接口在

HAL没有实现,所以你神马都得不到。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,