JobIntentService onHandleWork () не вызывается - PullRequest
0 голосов
/ 11 июля 2020

Я загрузил демо из https://github.com/inthepocket/ibeacon-scanner-android, но когда я запускаю Android Oreo и Android Q, onHandlework () вызывается только в первый раз, он не будет вызываться позже. Почему это? Благодарю, если кто-нибудь может помочь. Заранее спасибо. Это код.

public class BeaconActivityService extends JobIntentService
{


    private static final String TAG = "BeaconActivityService";

    private static final int NOTIFICATION_ID = 65;


    @Override
    protected void onHandleWork(@NonNull Intent intent) {
        final Beacon beacon = intent.getParcelableExtra(BluetoothScanBroadcastReceiver.IBEACON_SCAN_BEACON_DETECTION);
        final boolean enteredBeacon = intent.getBooleanExtra(BluetoothScanBroadcastReceiver.IBEACON_SCAN_BEACON_ENTERED, false);
        final boolean exitedBeacon = intent.getBooleanExtra(BluetoothScanBroadcastReceiver.IBEACON_SCAN_BEACON_EXITED, false);
        

        if (beacon != null)
        {
            String logMessage = "";
            if (enteredBeacon)
            {
                Log.d(TAG, "entered beacon " + beacon.getUUID());
                logMessage = getString(R.string.notification_enter, beacon.getUUID(), beacon.getMajor(), beacon.getMinor());
            }
            else if (exitedBeacon)
            {
                Log.d(TAG, "exited beacon " + beacon.getUUID());
                logMessage = getString(R.string.notification_exit, beacon.getUUID(), beacon.getMajor(), beacon.getMinor());
            }

            // Create notification channel if required
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
            {
                final NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                assert notificationManager != null;
                notificationManager.createNotificationChannel(new NotificationChannel(TAG, "Beacon Activity", NotificationManager.IMPORTANCE_LOW));
            }

            final Notification notification = new NotificationCompat.Builder(this, TAG)
                    .setAutoCancel(true)
                    .setContentText(logMessage)
                    .setContentTitle("Beacon activity")
                    .setGroup(TAG)
                    .setPriority(NotificationCompat.PRIORITY_LOW)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setStyle(new NotificationCompat.BigTextStyle().bigText(logMessage))
                    .build();

            final NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this);
            notificationManagerCompat.notify(TAG, NOTIFICATION_ID, notification);
        }
        else
        {
            // TODO: 14/03/2018 Add error support
            Toast.makeText(this, "Could not scan due to " + "an unknown error (TBA)", Toast.LENGTH_LONG).show();
        }
    }
}

Он не может судить по полученным сигналам маяка, enterBeacon и exitedBeacon, и в журнале нет вывода. Другими словами, onHandleWork () не вызывается. Это AndroidManifest

<service
            android:name=".service.BeaconActivityService"
            android:permission="android.permission.BIND_JOB_SERVICE"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...