- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
最佳答案
这可能对你有帮助
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.AlertDialog;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;
import com.example.driverapplication.CommonUtilities;
import com.example.driverapplication.R;
import com.example.driverapplication.ServiceHandler;
import com.example.driverapplication.utilities.ConnectionDetector;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationServices;
public class LocationUpdate extends Service implements GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener {
private static final String TAG = "DRIVER";
private LocationManager mLocationManager = null;
private static final int LOCATION_INTERVAL = 30000;
private static final float LOCATION_DISTANCE = 0;
private double currentLat, currentLng;
private SharedPreferences pref;
private String driverId;
private GoogleApiClient mGoogleApiClient;
// A request to connect to Location Services
private LocationRequest mLocationRequest;
private LocationListener locationListener;
private class LocationListener implements
com.google.android.gms.location.LocationListener {
public LocationListener() {
}
@Override
public void onLocationChanged(Location location) {
Log.e(TAG, "onLocationChanged: " + location);
currentLat = location.getLatitude();
currentLng = location.getLongitude();
}
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.e(TAG, "onStartCommand");
super.onStartCommand(intent, flags, startId);
boolean stopService = false;
if (intent != null)
stopService = intent.getBooleanExtra("stopservice", false);
System.out.println("stopservice " + stopService);
locationListener = new LocationListener();
if (stopService)
stopLocationUpdates();
else {
if (!mGoogleApiClient.isConnected())
mGoogleApiClient.connect();
}
return START_STICKY;
}
@Override
public void onCreate() {
Log.e(TAG, "onCreate");
pref = getSharedPreferences("driver_app", MODE_PRIVATE);
driverId = pref.getString("driver_id", "");
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(LocationServices.API).addConnectionCallbacks(this)
.addOnConnectionFailedListener(this).build();
}
@Override
public void onDestroy() {
Log.e(TAG, "onDestroy");
super.onDestroy();
}
public void stopLocationUpdates() {
LocationServices.FusedLocationApi.removeLocationUpdates(
mGoogleApiClient, locationListener);
if (mGoogleApiClient.isConnected())
mGoogleApiClient.disconnect();
}
@Override
public void onConnectionFailed(ConnectionResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onConnected(Bundle arg0) {
// TODO Auto-generated method stub
mLocationRequest = LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
mLocationRequest.setInterval(35000);
mLocationRequest.setFastestInterval(30000);
startLocationUpates();
}
private void startLocationUpates() {
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, mLocationRequest, locationListener);
}
@Override
public void onConnectionSuspended(int arg0) {
// TODO Auto-generated method stub
}
}
关于android - 如何从 IntentService 获取 FusedLocation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29917846/
我尝试了 Fused Location (GoogleApiClient),它在获取位置时不准确,它给了我以前的位置,即使我要求一个新的(当前的)位置,我要求 10 个请求(为了尽可能准确可能)但在
我设置了模拟位置,但是当启用模拟模式时我无法接收到任何位置,通常我每 3 秒接收到最后一个位置并更新位置 - 当模拟模式被禁用时 - 但是启用模拟模式我无法获得任何位置 @Override publi
我正在尝试获取用户最后已知的位置。 连接 Google API 后,我调用我的函数: @Override public void onConnected(Bundle bundle) { in
Android 编程对我来说是一个全新的东西,我一直在玩 android 的位置,我有同样的问题,我将定期向后台服务器发送位置更新,我正在使用 AlarmManager/LocationManager
我正在尝试通过fused location api 检索位置。我已尝试构建一个辅助类,以便我可以在我的整个应用程序中使用它。 代码: import com.google.android.gms.com
FusedLocation 有一个很棒的 API 来检查用户是否启用了所有相关设置来获取位置。我遵循了文档 https://developers.google.com/android/refere
我们应用中的流程如下: 显示一个全屏 Activity ,向用户解释为什么我们需要 GPS 位置 获取GPS权限 显示加载微调器 获取第一个地理位置 将第一个位置发送到服务器 从服务器加载相关数据 隐
如何使用新的 FusedLocation 检索当前位置来自 IntentService 的 API? 我如何确保 IntentService 将收到所有来自 FusedLocation API 的回调
我目前正在开发一款必须每五分钟检查一次用户位置并将坐标发送到服务器的应用程序。我决定使用 Google Play 服务中的 FusedLocation API 而不是普通的旧 LocationMana
我是一名优秀的程序员,十分优秀!