Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Jakub Novák
Člen
Avatar
Jakub Novák:20.12.2015 21:16

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:20.12.2015 22:46

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.