Avatar
Jakub Novák
Člen
Avatar
Jakub Novák:

Dobrý den,

jsem v androidu nový a tak jsem se zasekl, nejspíše na blbosti.

V main activity mám metodu :

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    Toast.makeText(getApplicationContext(), "...", Toast.LENGTH_SHORT).show();
}

v oncreate metode, request:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);

    startActivityForResult(new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE), 1);
}

Ale v mainactivity, registruju broadcast

receiver = new BluetoothBroadcastReceiver();
        registerReceiver(receiver, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));

Takže pokud se BT změní, tak to příjde do broadcastu kde je následující

public class BluetoothBroadcastReceiver extends BroadcastReceiver
{

    @Override
    public void onReceive(Context context, Intent intent)
    {
        final String action = intent.getAction();

        if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED))
        {
            final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
            switch (state)
            {
                case BluetoothAdapter.STATE_OFF:
                    MainActivity main = (MainActivity) context;
                    main.startActivityForResult(new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE), 1);
                    break;
            }
        }
    }
}

Popíšu funkčnost:

  1. když zapnu aplikaci, vyžádá se zapnutí BT, pokud dám ANO tak se BT zapne... pokud dám NE tak se vypíše jen ... tzn do onActivityResult to jde - správně
  2. pokud za běhu aplikace vypnu BT manuálně, okamžitě se děje bod č.1
  3. takhle to přesně chci..., ale pokud pujdu třeba do SettingsActivity, vypnu manuálně BT, tak vyskočí hned request na zapnutí BT - to je správně, ale když zmáčnu NE nechci zapínat BT, tak už to nenapíše "..." prostě to do onActivityResult neskočí - což je špatně a to je ten problém

Tzn. funguje to jen v MainActivity a v ostatních ne, snad jsem to vysvětlil jasně. :-)

Dokázal by mi někdo pomoct? Díky!

Editováno 20.12.2015 21:18
 
Odpovědět 20.12.2015 21:16
Avatar
Jakub Novák
Člen
Avatar
Odpovídá na Jakub Novák
Jakub Novák:

už to mám

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět 20.12.2015 22:46
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.