所以我需要将一个Activity中定义的btDevice发送到params中的服务,以便我可以得到它。下面是该服务的代码:如何将活动设置为服务?
public class Servicio extends JobService implements ServiceConnection {
private static BluetoothDevice btDevice;
public TemperaturaFragment temperaturaFragment;
private MetaWearBoard mwBoard;
@Override
public boolean onStartJob(JobParameters params) {
mJobHandler.sendMessage(Message.obtain(mJobHandler, 1, params));
params.getExtras(btDevice = getParcelableExtra(EXTRA_BT_DEVICE));
getApplicationContext().bindService(new Intent(this, BtleService.class), (ServiceConnection) this, BIND_AUTO_CREATE);
return true;
}
@Override
public boolean onStopJob(JobParameters params) {
return false;
}
private Handler mJobHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
Toast.makeText(getApplicationContext(),
"JobService task running", Toast.LENGTH_SHORT)
.show();
jobFinished((JobParameters) msg.obj, false);
return true;
}
});
,这里是我要发送的是,在活动中定义的对象:
btDevice= getIntent().getParcelableExtra(EXTRA_BT_DEVICE);
我想用builder.setExtras(the object here)
,然后在服务getExtras(get the object)
但设置的额外说这是一个BluetoothDevice,并需要一个捆绑。任何想法?谢谢您的帮助。
我把这个并不起作用,因为数据是刚读,不发送
Intent serviceIntent = new Intent(Servicio.class.getName())
serviceIntent.putExtra(1, getIntent().getParcelableExtra(EXTRA_BT_DEVICE));
getApplicationContext().startService(serviceIntent);
您尝试通过设备ID?怎么样使用共享首选项。 –
我没有试图通过de id,我试图传递它获取的数据,现在我看到序列化方法,任何想法? :( –