相关疑难解决方法(0)

如何使用Wifi或GSM或GPS获取粗略位置,以哪个可用?

我的应用程序启动时只需要一个粗略的位置服务.

详细地说,我需要应用程序的粗略位置,以便为用户提供附近的商店信息.

该位置不需要不断更新.此外,在这种情况下,粗略定位就足够了.

我希望应用程序自动选择GSM,wifi或GPS,无论哪个可用.

定位服务也应该是一次性的,以节省电话能量.

我该怎么办?

我曾尝试单独使用GPS.

我的问题是我不知道如何停止GPS的持续刷新位置功能.我不知道如何让手机从三种方法中选择一种.

非常感谢一些示例代码或想法.

android android-location android-wifi

14
推荐指数
2
解决办法
3万
查看次数

使用LocationClient定期获取更新的电池效率最高的方法是什么?

我正在考虑有两个单独的警报来每小时收集用户的位置数据,一个每隔59分钟关闭一次以"连接"客户端,第二个实际获取位置然后断开客户端.

就电池寿命而言,如果获取用户的位置将成为应用程序的主要消耗,我还应该考虑做些什么吗?或者,有两种警报有不同的方法吗?我最初只有一个警报,但执行(!mLocationClient.isConnected)然后连接检查不会给客户端足够的时间连接.

感谢您的见解.

这两个警报会像这样:

private int PERIODIC_UPDATE = 60000*60;  //gets location and disconnects every hour
private int PERIODIC_RECONNECTION_UPDATE = 60000*59;  //connects 1 minute before getLocation call

    Timer toReconnect = new Timer();
    toReconnect.schedule(new TimerTask() {

        @Override
        public void run() {
            mLocationClient.connect();
        }
    }, 5000, PERIODIC_RECONNECTION_UPDATE);

    Timer theTimer = new Timer(); 
    theTimer.schedule(new TimerTask(){
        @Override
        public void run() {
            try {
                if(!mLocationClient.isConnected()) {
                    mLocationClient.connect();
                    //This will not have much affect because cannot so quickly, will remove. 
                }

                Location theLocation = mLocationClient.getLastLocation();
                if(theLocation!=null) { …
Run Code Online (Sandbox Code Playgroud)

android timer geolocation google-play-services

7
推荐指数
1
解决办法
4441
查看次数