Bada Bung
- Forum-Beiträge: 5
20.11.2013, 15:54:31 via Website
20.11.2013 15:54:31 via Website
Hi und hallo,
hoffe ich mach alles richtig - falls nicht - Frischling ;)
Ich versuche mich gerade ein bisschen an Android (bin da ziehmlicher Neuling - programmieren im allgemeinen geht etwas besser^^). Ich habe eine App mit einer MainActivity. In dieser erzeuge ich eine Instanz einer anderen Klasse (BTCon). In der BTCon Klasse möchte ich nun einen ACTION_REQUEST erhalten und diesen mit onActivityResult "abfangen".
Genauer geht es darum Bluetooth (BT) auf meinem Handy zu aktivieren. Wenn ich das alles in der MainActivity mache ist es kein Problem, aber aus diversen Gründen möchte ich den Zugriff auf BT nur auf die BTCon Klasse beschränken. Zunächst mal noch ne Grundlegende Frage, danach etwas Code um zu sehen was ich genau gemacht habe:
Kann ich die onActivityResult einfach in einer anderen Klasse integrieren (vorher extends Activtiy) - es gibt keinen Syntaxfehler - nur meine App stürtzt ab und zwar immer dann, wenn ich den aufruf zum aktivieren von BT mache.
BTCon Klasse:
In der Main sieht der Aufruf wie folgt aus:
Eigentlich war der Plan wie folgt: Ich rufe die Methode auf, die überprüft ob BT aktiv oder nicht. Wenn nicht soll eine Meldung aufpoppen, die zum aktivieren von BT auffordert. Wenn das erfolgreich ist wird in ne bool Variable true eingetragen. Falls man BT nicht aktiviert kommt false rein.
Diese Variabe wird in der Main geprüft und dann wird entsprechen verfahren.
hoffe ich mach alles richtig - falls nicht - Frischling ;)
Ich versuche mich gerade ein bisschen an Android (bin da ziehmlicher Neuling - programmieren im allgemeinen geht etwas besser^^). Ich habe eine App mit einer MainActivity. In dieser erzeuge ich eine Instanz einer anderen Klasse (BTCon). In der BTCon Klasse möchte ich nun einen ACTION_REQUEST erhalten und diesen mit onActivityResult "abfangen".
Genauer geht es darum Bluetooth (BT) auf meinem Handy zu aktivieren. Wenn ich das alles in der MainActivity mache ist es kein Problem, aber aus diversen Gründen möchte ich den Zugriff auf BT nur auf die BTCon Klasse beschränken. Zunächst mal noch ne Grundlegende Frage, danach etwas Code um zu sehen was ich genau gemacht habe:
Kann ich die onActivityResult einfach in einer anderen Klasse integrieren (vorher extends Activtiy) - es gibt keinen Syntaxfehler - nur meine App stürtzt ab und zwar immer dann, wenn ich den aufruf zum aktivieren von BT mache.
BTCon Klasse:
1public class BTCon extends Activity{
2
3public void changeStateBT()
4 {
5 int REQUEST_ENABLE_BT = 1;
6 Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
7
8 if (!btAdapter.isEnabled())
9 {
10 startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
11 }
12
13 else {
14 startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
15 }
16}
17
18//Fängt Result von BT Aktivierung ab und checkt ob aktiviert wurde oder nicht
19 @Override
20 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
21 // TODO Auto-generated method stub
22 super.onActivityResult(requestCode, resultCode, data);
23
24 if (resultCode == Activity.RESULT_OK){
25 /**
26 Log.d(TAG, "onActivityResult() - BT AKTIV");
27 **/
28 btAktiv = true;
29 }
30
31 else{
32 btAktiv = false;
33 }
34 }
35}
2
3public void changeStateBT()
4 {
5 int REQUEST_ENABLE_BT = 1;
6 Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
7
8 if (!btAdapter.isEnabled())
9 {
10 startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
11 }
12
13 else {
14 startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
15 }
16}
17
18//Fängt Result von BT Aktivierung ab und checkt ob aktiviert wurde oder nicht
19 @Override
20 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
21 // TODO Auto-generated method stub
22 super.onActivityResult(requestCode, resultCode, data);
23
24 if (resultCode == Activity.RESULT_OK){
25 /**
26 Log.d(TAG, "onActivityResult() - BT AKTIV");
27 **/
28 btAktiv = true;
29 }
30
31 else{
32 btAktiv = false;
33 }
34 }
35}
In der Main sieht der Aufruf wie folgt aus:
1else
2 {
3 btDevice.changeStateBT();
4 boolean btAktiv = btDevice.getBtAktiv();
5
6 if(!btAktiv)
7 {
8 Toast.makeText(this, "BT muss aktiv sein - App wurde beendet", Toast.LENGTH_LONG).show();
9 finish();
10 }
11
12 else
13 {
14 Toast.makeText(this, "BT Adapter aktiv", Toast.LENGTH_SHORT).show();
15 //Enable Button
16 }
17 }
2 {
3 btDevice.changeStateBT();
4 boolean btAktiv = btDevice.getBtAktiv();
5
6 if(!btAktiv)
7 {
8 Toast.makeText(this, "BT muss aktiv sein - App wurde beendet", Toast.LENGTH_LONG).show();
9 finish();
10 }
11
12 else
13 {
14 Toast.makeText(this, "BT Adapter aktiv", Toast.LENGTH_SHORT).show();
15 //Enable Button
16 }
17 }
Eigentlich war der Plan wie folgt: Ich rufe die Methode auf, die überprüft ob BT aktiv oder nicht. Wenn nicht soll eine Meldung aufpoppen, die zum aktivieren von BT auffordert. Wenn das erfolgreich ist wird in ne bool Variable true eingetragen. Falls man BT nicht aktiviert kommt false rein.
Diese Variabe wird in der Main geprüft und dann wird entsprechen verfahren.
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.