2015-04-17 6 views
0

Я не могу понять, как подождать пользователя, чтобы выбрать, нужно ли включить Bluetooth. Если приложение запускается без Bluetooth включен он выходит из строя, потому что я не буду, не дожидаясь результата от этой линии:Android ждет результата активности

mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
     if (!mBluetoothAdapter.isEnabled()) { 
      Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
      startActivityForResult(enableBtIntent, 1); 
     } 

Как я могу подождать до тех пор, пока пользователь не выберет да или нет включения Bluetooth? -Спасибо

+0

Вы ничего не делать в вашем приложении, пока 'onActivityResult()' не называется. Возможно, вам нужно установить флаг в своей деятельности, который вы ожидаете от пользователя, чтобы вы ничего не делали с Bluetooth, пока пользователь не ответит. –

+0

Вы переопределяете 'onActivityResult()'? – codeMagic

+0

релевантный http://stackoverflow.com/questions/20558689/back-to-previous-activity-with-intent/20558774#20558774 – codeMagic

ответ

1

Вам необходимо переопределить onActivityResult, как описано в этой статье.

http://developer.android.com/training/basics/intents/result.html

Это общий поток:

  1. Вы начинаете другую деятельность за результат в моде вы публикуемую
  2. После того, как вызываемая деятельность заканчивается она должна возвращать результат вызывающих деятельностей через onActivityResult.

Вы должны проверить результат или проверить, включен ли bluetooth после вызова этого метода для ex. и продолжите свое исполнение на основе информации, которую вы сейчас имеете.

Фрагменты кода из статьи:

static final int PICK_CONTACT_REQUEST = 1; // The request code 

private void pickContact() { 
    Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts")); 
    pickContactIntent.setType(Phone.CONTENT_TYPE); // Show user only contacts w/ phone numbers 
    startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST); 
} 


@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
// Check which request we're responding to 
if (requestCode == PICK_CONTACT_REQUEST) { 
    // Make sure the request was successful 
    if (resultCode == RESULT_OK) { 
     // The user picked a contact. 
     // The Intent's data Uri identifies which contact was selected. 

     // Do something with the contact here (bigger example below) 
    } 
} 
} 
Смежные вопросы