2015-10-07 43 views
1

我想发现可用的蓝牙设备在后台服务。我被困在“startActivityForResult”部分,因为服务不是活动。请帮助...Android蓝牙搜索服务可用设备

private void CheckBTState() { 
    // TODO Auto-generated method stub 
     // Check for Bluetooth support and then check to make sure it is turned on 
    // If it isn't request to turn it on 
    // List paired devices 
    // Emulator doesn't support Bluetooth and will return null 
    Log.d("check","4"); 
     if (btAdapter.isEnabled()) { 
//  out.append("\nBluetooth is enabled..."); 

     // Starting the device discovery 
     btAdapter.startDiscovery(); 
     Log.d("check","5"); 
     } else { 

     Intent enableBtIntent = new Intent(btAdapter.ACTION_REQUEST_ENABLE); 
     Log.d("check","6"); 

    STUCK OVER HERE.... DON'T NO HOW TO CALL startActivityForResult IN SERVICE 

// ((Activity) context).startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); 
     // activity.startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); 


     } 


} 
+0

请与标记你使用(Java中,...)编程语言你的问题。谢谢。 – potame

回答

0

您必须在启动服务之前激活蓝牙。

只需添加到您的活动验证码:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == <needed value>) { 


    } 
    super.onActivityResult(requestCode, resultCode, data); 
} 
+0

需要在后台服务中运行整个事情。不使用活动。需要扫描可用的蓝牙设备,并将其与我的数据库中已有的蓝牙设备进行匹配。 – user5171632

+0

在您运行后台服务之前,您的设备上的蓝牙适配器应该打开。原因很简单:用户必须点击按钮来打开蓝牙 – Vlad

+0

是的,我的蓝牙适配器是..现在的问题是我必须得到所有可用的设备在后台服务..... – user5171632