在我的应用程序中,我想确定用户的当前位置.但是我在这方面有几个问题:
在我的Android应用程序中,我希望每隔几分钟获取用户当前位置,并使用Web服务更新到我的中心服务器.目前我正在使用Fused Location Provide获取用户当前位置,请参阅链接
现在我想知道经常获取用户位置和调用Web服务的最佳方法是什么.
下面是我的代码,它给了我用户当前的位置: -
locationrequest = LocationRequest.create();
locationrequest.setInterval(10000);
locationclient.requestLocationUpdates(locationrequest,new com.google.android.gms.location.LocationListener() {
@Override
public void onLocationChanged(Location location) {
Log.i(TAG, "Last Known Location :" + location.getLatitude() + "," + location.getLongitude());
}
});
Run Code Online (Sandbox Code Playgroud)
现在从哪里我必须调用此代码.我可以在后台服务或其他地方使用它.
请提出你的想法.
TIA.
我正在尝试使用Angular编写我的第一个Web应用程序.
在正常模式下(html5Mode关闭),Angular强制地址的哈希部分看起来像"路径"(添加前导"/"),并对特殊字符进行编码 - 例如,它允许单个"?" 哈希中的"#"和用%3F和%23替换其他的#.
有没有办法关闭此功能?我不想使用$ locationProvider/$ routeProvider功能 - 我想自己解析哈希(在我的情况下,用户将在哈希中输入一些"自由文本"以在我的网站内搜索).
我读到routeProvider无法配置为使用正则表达式...
如果打开htmlMode,则不会强制地址的散列部分看起来像路径(没有前导"/"),但它仍然编码特殊字符.
我知道有些浏览器可能会编码/转义特殊字符,但如果用户设法在其地址栏中输入一些特殊字符,那么我不想更改它.
谢谢
javascript address-bar location-provider angularjs route-provider
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().matches("android.location.PROVIDERS_CHANGED")) {
Toast.makeText(context, "in android.location.PROVIDERS_CHANGED",
Toast.LENGTH_SHORT).show();
Intent pushIntent = new Intent(context, LocalService.class);
context.startService(pushIntent);
} else {
Toast.makeText(context, "not in android.location.PROVIDERS_CHANGED",
Toast.LENGTH_SHORT).show();
Intent pushIntent = new Intent(context, LocalService.class);
context.startService(pushIntent);
}
}
@Override
public void onLocationChanged(Location arg0) {
}
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,我需要在打开/关闭gps时触发广播接收器.调查此事并建议在app中实施最好的一个.
如果我的网址是http://www.something.com/foo/bar/index.html?color=yellow&animal=rat,似乎:
$location.path() 将返回 foo/bar/index.html$location.absUrl() 将返回 http://www.something.com/foo/bar/index.html?color=yellow&animal=rat$location.url() 将返回 foo/bar/index.html?color=yellow&animal=rat有什么功能会回来http://www.something.com/foo/bar/index.html吗?
或者我是否必须使用protcol,host,port等函数构建自己(或者自己删除查询参数)?
我正在使用Google Maps API V1.我有这个错误:
java.lang.IllegalArgumentException: provider doesn't exisit: null
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
String provider = locationManager.getBestProvider(criteria, true);
if (provider != null)
{
startTime = System.currentTimeMillis();
geoLocTimeOutTask = new GeoLocTimeOutTask();
geoLocTimeOutTask.execute();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
}
else
{
geoLocCallbackObj.geoLocationCallback(tagCallback);
}
Run Code Online (Sandbox Code Playgroud)
我理解错误,我的问题是,设备给我这个错误吗?我怎么能避免这个呢?
我有这个代码来获得最好的提供商
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new MyLocationListener();
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
String provider = lm.getBestProvider(criteria, true);
Location mostRecentLocation = lm.getLastKnownLocation(provider);
if(mostRecentLocation != null) {
latid=mostRecentLocation.getLatitude();
longid=mostRecentLocation.getLongitude();
}
lm.requestLocationUpdates(provider, 1, 0, locationListener);
Run Code Online (Sandbox Code Playgroud)
然后是听众
private class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
if (loc != null) {
latid = loc.getLatitude();
longid = loc.getLongitude();
// if(loc.hasAccuracy()==true){
accuracyd = loc.getAccuracy();
String providershown = loc.getProvider();
accuracy.setText("Location Acquired. Accuracy:"
+ Double.toString(accuracyd) + "m\nProvider: "+providershown);
accuracy.setBackgroundColor(Color.GREEN);
// }
userinfo=usernamevalue+"&"+Double.toString(latid)+"&"+Double.toString(longid); …Run Code Online (Sandbox Code Playgroud) 问题:
Fusion Location Provider API声称,位置更新无法在室内工作.
发生了什么:
LocationClient在我的Android应用中使用最新的位置API来获取位置更新.预期行为:
根据新的API,当我在室内时,我期望在建筑物周围获得一些估计的位置(因为GPS没有找到卫星信号以获得准确的位置).
我看到最新的谷歌地图Android应用程序在室内工作得很好,估计位置.
题:
我还需要注意使用新的位置API来在室内更新位置(不需要准确的位置,低精度也很好).
我正在使用Android 4.2.2版API实现Android App.我在HTC One X上测试(OS v 4.1.1)
下面是我用于使用新API获取位置更新的android代码:
步骤1:
mLocationClient = new LocationClient(this, this, this);
Run Code Online (Sandbox Code Playgroud)
第2步:
// Create the LocationRequest object
mLocationRequest = LocationRequest.create();
// Use high accuracy
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
// Set the update interval to 5 seconds
mLocationRequest.setInterval(UPDATE_INTERVAL);
// Set the fastest update interval to 1 second
mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
Run Code Online (Sandbox Code Playgroud)
Step3:inside onStart()方法 - 添加以下行:
// Connect the client.
mLocationClient.connect();
Run Code Online (Sandbox Code Playgroud)
Step4:inside onConnected()方法 - 添加以下行:
mLocationClient.requestLocationUpdates(mLocationRequest, …Run Code Online (Sandbox Code Playgroud) 我正在使用Fused Location Provider开发应用程序.我有个疑问.为了定期获取位置,它使用requestLocationUpdates().但是从哪个来源获取WIFI或GPS或网络的位置.在我的应用程序中,仅当WiFi处于开启状态时,它才会定期获取位置.当WiFi处于关闭状态时,它无法获得该位置(它应该从GPS或网络的其他来源获得位置.但它永远不会获得位置.或者我必须为GPS和网络编写听众).我不知道是什么问题.谁能帮我.
并且,它是否仅适用于所有提供商(Wifi,GPS,网络)或其他.
public void checkPlay(){
int resp = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (resp == ConnectionResult.SUCCESS) {
locationClient = new LocationClient(this, this, this);
locationClient.connect();
} else {
Toast.makeText(this, "Google Play Service Error " + resp,
Toast.LENGTH_LONG).show();
}
}
public void onConnected(Bundle arg0) {
// TODO Auto-generated method stub
if (locationClient != null && locationClient.isConnected()) {
locationRequest = LocationRequest.create();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(100);
locationClient.requestLocationUpdates(locationRequest, this);
}
}
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
try {
if (location != null) { …Run Code Online (Sandbox Code Playgroud) gps android google-maps location-provider google-maps-android-api-2
在我的Android应用程序中,我想使用GPS提供商和网络提供商进行位置更新5秒钟.首先,我想使用GPS提供商(因为它提供了准确的结果),如果GPS提供商返回纬度和经度为0.0和0.0,那么我想使用网络提供商,但我不想同时使用这两个提供商同时.有什么建议?
android ×8
gps ×4
location ×4
angularjs ×2
address-bar ×1
api ×1
google-maps ×1
javascript ×1
networking ×1
url ×1