BLE长期背景扫描工作异常

时间:2018-06-23 12:11:52

标签: android bluetooth-lowenergy

我希望我的Android应用无限期地在后台扫描BLE外设。

注意:我想要实现的效果等同于使用iOS状态保存和还原-这对我来说非常有效。即使系统挂起,打ze(Android)或从内存中删除该应用程序,我也想拿起广告。

如果发现外围设备,我的整个BLE回调系统将正常运行。问题是,在后台运行了几分钟(在某些设备上为5个)之后,不再显示广告。我之所以知道是因为我被黑了一些实时工具,以查看何时发生发现。

我尝试过的事情

  1. 创建服务并将其提升为前台服务

    Intent intent = new Intent(getApplicationContext(), DataCollectionService.class);
    startService(intent);
    
    //... and then from the service itself...
    
    @Override
    public void onCreate() {
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
    
        builder
            .setContentTitle("Adrich is running.")
            .setContentText("You're all set. Keep an eye on your email inbox for sweet discounts.")
            .setSmallIcon(R.drawable.adrich_android_notify_icon);
    
        startForeground(1, builder.build());
    }
    
  2. 我也尝试过(但随后删除了)一个计时器系统,该系统在10秒钟左右的时间后重新启动BLE。我在Android 7.0, BLE stops after 30 minutes之后读过这本书。

这是我的背景扫描,大约5分钟后就停止了。

问题

我担心这里缺少真正明显的东西,因为背景扫描的效果非常差。有什么建议吗?我该如何尝试使BLE后台扫描更好地工作?

0 个答案:

没有答案