したがって、1つのアクティビティで定義された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を渡すためにしようとしていますか?共有設定を使用するとどうなりますか? –
私はIDを渡そうとしていない、私は取得するデータを渡そうとしている、今私はシリアル化メソッド、任意のアイデアを参照してください? : –