Я делаю приложение, которое получает последнее известное местоположение, когда пользователь нажимал клавишу Power два раза. Я использую службу переднего плана для регистрации вещательного приемника и для местоположения, который я использую FusedLocationProviderClient. Пользователь может получить местоположение, пока приложение находится в фоновом режиме. Моя проблема в том, что я могу приносить местонахождение только на один раз. Второе время местоположение ноль. Как я могу его решить?
Я делаю приложение, которое получает последнее известное местоположение, когда пользователь нажимал клавишу Power два раза. Я использую службу переднего плана для регистрации вещательного приемника и для местоположения, который я использую FusedLocationProviderClient. Пользователь может получить местоположение, пока приложение находится в фоновом режиме. Моя проблема в том, что я могу приносить местонахождение только на один раз. Второе время местоположение ноль. Как я могу его решить?[code]public class ScreenOnOffBackgroundService extends Service { private ScreenOnOffReceiver screenOnOffReceiver = null;
@Override public IBinder onBind(Intent intent) { return null; }
@Override public int onStartCommand(Intent intent, int flags, int startId) { createNotificationChannel(); Intent mainIntent = new Intent(this, DashboardActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this,0,mainIntent, 0); Notification notification = new NotificationCompat.Builder(this,"safetyId") .setContentTitle("Safety Service") .setContentText("Press power key to send alert") .setSmallIcon(R.drawable.android) .setContentIntent(pendingIntent) .build(); startForeground(1,notification); return START_STICKY; }
@Override public void onCreate() { super.onCreate(); // Create an IntentFilter instance. IntentFilter intentFilter = new IntentFilter(); // Add network connectivity change action. intentFilter.addAction("android.intent.action.SCREEN_ON"); // Set broadcast receiver priority. intentFilter.setPriority(100); screenOnOffReceiver = new ScreenOnOffReceiver(); HandlerThread broadcastHandlerThread = new HandlerThread("SafetyThread"); broadcastHandlerThread.start(); Looper looper = broadcastHandlerThread.getLooper(); Handler broadcastHandler = new Handler(looper); registerReceiver(screenOnOffReceiver,intentFilter,null,broadcastHandler); }
public static DashboardActivity getInstance(){ return instance; }
public void registerService(){ if(!foregroundServiceRunning()){ Intent backgroundService = new Intent(this, ScreenOnOffBackgroundService.class); ContextCompat.startForegroundService(this,backgroundService); } }
public boolean foregroundServiceRunning(){ ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); for(ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)){ if(ScreenOnOffBackgroundService.class.getName().equals(service.service.getClassName())){ return true; } } return false; }
@SuppressLint("MissingPermission") public void getLastLocation() { // check if permissions are given if (checkPermissions()) { // check if location is enabled if (isLocationEnabled()) {
Я делаю приложение, которое получает последнее известное местоположение, когда пользователь нажимал клавишу Power два раза. Я использую службу переднего плана для регистрации вещательного приемника и для местоположения, который я использую...
Я работаю над приложением Android, которое сканирует документы с использованием Camerax и OpenCV. Обнаружение документов хорошо работает, когда документ помещается на черный фон, но сбое не работает при размещении на белом или светлом фоне. Я...
Мое приложение работает в частной сети в удаленном месте, поэтому меня действительно интересуют только координаты GPS, а не поддержка Wi-Fi, но использование встроенной функции сервисов Google Play тоже подходит. Остальная часть приложения...
Я не могу получить простое приложение веб-просмотра для Android для доступа к местоположению устройства (Примечание: я использую эмуляторы). Веб-просмотр работает нормально, за исключением того, что я никогда не вижу приглашения разрешить...