Я создал AsyncTask. Я хочу соединиться с Bluetooth-устройством, и только после сопряжения он должен перейти к следующему действию. Мой код:Android Async не работает
public class YourTask extends AsyncTask<String, Void, Void>
{
public BluetoothDevice d;
@Override
protected Void doInBackground(String... urls)
{
//pairDevice(d);
return null;
}
public void onPreExecute()
{
pairDevice(d);
}
@Override
protected void onPostExecute(Void result)
{
Context context = getApplicationContext();
int duration = Toast.LENGTH_SHORT;
CharSequence text = "Pairing";
Toast toast = Toast.makeText(context, text, duration);
toast.show();
startActivity(new Intent(NewDeviceActivity.this,DevicesActivity.class));
finish();
}
}
void pairDevice(BluetoothDevice device) {
try {
Method m = device.getClass()
.getMethod("createBond", (Class[]) null);
m.invoke(device, (Object[]) null);
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
}
Функция onPostExecute выполняется даже до завершения функции pairDevice. Пожалуйста, помогите
переместите вызов метода 'pairDevice' внутри' doInBackground', и он должен работать. И также инициализируйте ссылку '' BluetoothDevice''. В настоящее время у вас есть 'refrence' of' BluetoothDevice', а не объект 'BluetoothDevice' – BBdev