@Override
public void onReceive(Context context, Intent intent) {
LogManager.d(TAG, "onReceive called in startup broadcast receiver");
if (android.os.Build.VERSION.SDK_INT < 18) {
LogManager.w(TAG, "Not starting up beacon service because we do not have API version 18 (Android 4.3). We have: %s", android.os.Build.VERSION.SDK_INT);
return;
}
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(context.getApplicationContext());
if (beaconManager.isAnyConsumerBound() || beaconManager.getScheduledScanJobsEnabled()) {
int bleCallbackType = intent.getIntExtra(BluetoothLeScanner.EXTRA_CALLBACK_TYPE, -1); // e.g. ScanSettings.CALLBACK_TYPE_FIRST_MATCH
if (bleCallbackType != -1) {
LogManager.d(TAG, "Passive background scan callback type: "+bleCallbackType);
LogManager.d(TAG, "got Android O background scan via intent");
int errorCode = intent.getIntExtra(BluetoothLeScanner.EXTRA_ERROR_CODE, -1); // e.g. ScanCallback.SCAN_FAILED_INTERNAL_ERROR
if (errorCode != -1) {
LogManager.w(TAG, "Passive background scan failed. Code; "+errorCode);
}
ArrayList<ScanResult> scanResults = intent.getParcelableArrayListExtra(BluetoothLeScanner.EXTRA_LIST_SCAN_RESULT);
ScanJobScheduler.getInstance().scheduleAfterBackgroundWakeup(context, scanResults);
}
else if (intent.getBooleanExtra("wakeup", false)) {
LogManager.d(TAG, "got wake up intent");
}
else {
LogManager.d(TAG, "Already started. Ignoring intent: %s of type: %s", intent,
intent.getStringExtra("wakeup"));
}
}
else {
LogManager.d(TAG, "No consumers are bound. Ignoring broadcast receiver.");
}
}
StartupBroadcastReceiver.java 文件源码
java
阅读 26
收藏 0
点赞 0
评论 0
项目:android-beacon-library
作者:
评论列表
文章目录