Articles of 位置

考虑到电池,Android在后台重复获取位置的最佳方式

我需要在我的应用程序中连续请求位置,它应该始终是后台服务。 我需要每两分钟左右拉一次。 我想过使用一个服务,在onStartCommand我会使用locationmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MINIMUM_TIME_INTERVAL, MINIMUM_DISTANCE, this); 以及locationmanager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MINIMUM_TIME_INTERVAL, MINIMUM_DISTANCE, this); 但我担心随着时间的推移,这个requestLocationUpdates会停止给我一个位置。 所以我想到使用AlarmManager所以它继续给我位置。 我的问题是,是否有必要使用AlarmManager提醒获取位置,或者如果我使用AlarmManager将耗尽大量电池。 我只是想知道在后台获取位置的最佳方法。 提前致谢。

如何为位置服务实现onConnectionFailed()和onDisconnected()

我正在使用一个Service来实现com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks和com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener 该服务应该在运行时每分钟将位置更新上载到服务器。 我用谷歌搜索了教程,但我找不到任何好的方案。 我不知道如何实现的方法是: @Override public void onConnectionFailed(ConnectionResult connectionResult) { … } 有一些教程建议使用connectionResult.startResolutionForResult(this, CONNECTION_FAILURE_RESOLUTION_REQUEST);启动活动connectionResult.startResolutionForResult(this, CONNECTION_FAILURE_RESOLUTION_REQUEST); 但由于这是一个Service (不是活动),我不能使用这种方法。 我想将Intent的connectionResult发送给一个活动,但ConnectionResult不可序列化。 和 @Override public void onDisconnected() { … } 我应该在这里再次调用LocationClient#connect()吗?

如何使用手机信号塔查找用户位置?

如何使用Android中的手机信号塔查找用户位置,或者如何根据Android中的手机ID获取手机位置?

检查用户是否在提示后启用了GPS

干净利落。 我启动一项活动并检查手机是否启用了GPS模块。 如果没有启用,我会通过对话框提示用户,并询问他是否要手动启用它。 在是,我激活位置设置。 现在用户可以根据需要启用它,但我需要检查他做了什么。 try { isGPSEnabled = locationManager .isProviderEnabled(LocationManager.GPS_PROVIDER); } catch (Exception ex) {} if (isGPSEnabled) { locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, locationListenerGps); } else { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage( “Your GPS module is disabled. Would you like to enable it ?”) .setCancelable(false) .setPositiveButton(“Yes”, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int […]

检测或阻止用户是否使用虚假位置

如果用户伪造该位置,我将阻止用户使用我的应用。 所以我使用isFromMockProvider来检查位置是否是假的(按照这里 )。 但在某些情况下, isFromMockProvider()可能会为伪造位置返回false。 public void onLocationChanged(Location location) { textView.append(“long:”+location.getLatitude()+” – lat:”+location.getLongitude()+” – isMock :”+location.isFromMockProvider() + “\n”); } 我的情况是 :我使用假冒伪劣GPS定位到一个位置,然后我禁用假位置,并转到我的应用程序。 然后onLocationChanged使用isFromMockProvider() = false返回伪位置 录像机 : https : //www.youtube.com/watch?v = rWVvjOCaZiI(在此video中,我目前的位置是16.06,108.21,假位置是36.26,138.28。你可以在上一个video中看到位置是36.26, 138.28但isFromMockProvider = false) 在这种情况下,有没有办法检测用户是否使用假位置? 任何帮助或建议将非常感谢。 DEMO项目

使用GoogleApiClient + LocationServices不更新

我只是想做一个简单的“教程”应用程序来获取我的手机的位置(以便在以后的其他应用程序中学习如何使用它),但我只是没有到达任何地方。 我做了什么 Android Developer的教程:首先,我按照Android开发者网站(developer.android.com/training/location/receive-location-updates.html)中的教程进行操作。 就像那里所示,我使用了Location,LocationClient和LocationRequest,在onCreate中初始化它们(并设置它们)。 LocationClient在onStart和onStop上连接和断开连接。 我在连接后请求位置更新(在onConnected中)。 我在拨打电话之前validation了GooglePlayServices是否可用,而且我仍然没有在“onLocationChanged”中获得任何更新。 GoogleApiClient:我注意到不推荐使用LocationClient,而首选的是LocationServices(developer.android.com/reference/com/google/android/gms/location/LocationClient.html)。 如下所示: https : //developer.android.com/reference/com/google/android/gms/location/FusedLocationProviderApi.html ,我使用GoogleApiClient并将其设置为LocationServices(也是https://stackoverflow.com/a / 25013850/3802589 )。 那么我把它全部设置为使用它但仍然没有得到任何关于位置的更新。 onLocationChanged如果有响应则应该打印。 我还放了一个打印位置或“没有”的按钮。 备注 我检查了使用谷歌地图,看看我是否有一些东西,但它的工作正常。 项目 的build.gradle dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile ‘com.google.android.gms:play-services:5.0.77’ compile “com.android.support:support-v4:20.0.+” } 表现 … … … 码 public class MyActivity extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener { private GoogleApiClient mLocationClient; private […]

在Android ListView中显示带箭头的地方方向

我要求在Android ListView显示一些地方的列表以及该地方的方向。 我能够find位置之间的角度,但问题是我的客户端需要在旋转或移动设备时旋转箭头。 我没有find任何按照传感器更改旋转箭头的解决方案。 在这样的要求中做任何一个吗? 请建议我一些解决方案,以便在此iPhone应用程序中显示列表。 或者看下面的图像。 更新: 我期待任何答案,这将有助于启动以下要求。 即使单独显示箭头也是受欢迎的,因此我将尽力实现以下目标。 我所做的所有样品都在摇晃,它们不稳定。

通过DDMS在Android设备上模拟模拟位置

我有一个Android 2.3.3的GPS导航应用程序,我一直在努力。 我目前正在尝试通过DDMS通过GPX文件模拟位置。 虽然这可以在Android模拟器上完美find,但我无法让它在实际设备上运行。 我能够在“设备”选项卡下看到该设备,但我无法发送任何模拟位置数据或GPX数据,因为“仿真控制”选项卡下的选项显示为灰色。 我注意到之前关于StackOverflow的问题提到它是不可能的,但Google文档标题为“使用DDMS” – http://developer.android.com/tools/debugging/ddms.html声明以下内容(位于底部这一页) 设置手机的位置 如果您的应用程序取决于手机的位置,您可以让DDMS发送您的设备或AVD模拟位置。 如果您想要在不实际移动的情况下测试应用程序的位置特定function的不同方面,这将非常有用。 您可以使用以下地理位置数据types: 我只是想知道如何通过DDMS将假位置数据发送到设备。 感谢您的帮助,我非常感谢。

Android – 只获取一次位置

我需要在Android应用程序上获取当前用户位置,所以我在网上阅读了一些教程和示例,但我看到在所有示例中,该位置是从“onLocationChange”中恢复的,这意味着每次都是位置更改,执行“onLocationChange”中的代码。 我只需要在应用程序启动时获取用户位置。 谢谢你的帮助!

保存在服务器上的位置的接近警报

我做了一些搜索,但找不到合适的答案。 我的应用程序应该与多个位置进行比较。 这意味着我将无法将所有位置保存到我的应用程序中以使用locationManager确认接近度。 我希望在服务器中完成接近确认 实现这个的最佳方法是什么? 如果应用程序每次设备移动时都要求接近确认,这是否合理?