所以,我有一個啓動服務的應用程序。此服務開始使用BTAdapter.startDiscovery()掃描藍牙設備。此外,我有一個廣播接收器,它傾聽DISCOVERY_FINISHED動作。如果發生這種情況,我想從我的服務中的onReceive()方法中調用一個方法來重新開始掃描過程。我該怎麼做?如何在廣播接收器中調用服務方法?
這裏我的接收器:
public class PollingReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ScanBTService sBTs = new ScanBTService();
sBTs.startScan();
}
}
和這裏的服務:
public class ScanBTService extends IntentService {
private BluetoothAdapter mBTAdapter;
private PollingReceiver mPollingReceiver;
public ScanBTService() {
super("ScanBTService");
}
@Override
protected void onHandleIntent(Intent intent) {
final BluetoothManager btManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
mBTAdapter = btManager.getAdapter();
mBTAdapter.startDiscovery();
}
public void startScan() {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
mBTAdapter.startDiscovery();
}
}
相同bmartins響應。無法解析方法'startService(android.content.Intent)' – alabaster 2014-10-11 13:45:15