首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“无法联系服务以设置扫描周期”-在ble扫描期间

问“无法联系服务以设置扫描周期”-在ble扫描期间
EN

Stack Overflow用户
提问于 2015-05-16 12:48:36
回答 1查看 288关注 0票数 0

我正在使用后台服务扫描ble,也从活动中扫描。因此,当后台服务和活动都并行运行时,则不会给扫描任何信标。因此,当扫描活动打开时,我会停止服务,然后它会显示“无法联系服务以设置扫描周期”错误。之后,扫描将在活动中停止

EN

回答 1

Stack Overflow用户

发布于 2015-05-17 20:14:43

我首先有相同的设置-前台活动和后台服务,两者都与BLE外围设备通信。

但后来我重写了我的活动,只是为了与Service通信-只有后者与BLE外围设备通信:

代码语言:javascript
复制
public class MainActivity extends Activity {
    private Intent mServiceIntent;
    private ScanService mService;
    private ServiceConnection mServiceConnection = new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName name, IBinder binder) {
              ScanBinder sb = (ScanBinder) binder;
              mService = sb.getService();
              mService.setActivity(MainActivity.this);
              Utils.showToast(MainActivity.this, "Connected to service");
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
              Utils.showToast(MainActivity.this, "Disconnected from service");
              mService.setActivity(null);
              mService = null;
        }
    };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mServiceIntent = new Intent(this, ScanService.class);
        startService(mServiceIntent);
......

public class ScanService extends Service {
    private Activity mActivity;

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        if (mActivity != null)
            Utils.showToast(this, "Service (re)started");

        return START_STICKY;
    }

    public void setActivity(Activity activity) {
        mActivity = activity;
    }

Lars Vogel在9. Exercise: Define and consume local service教程中描述了这种交流。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30271933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档