ali7566
Lieutenant
- Registriert
- Feb. 2007
- Beiträge
- 980
Hallo,
ich bin gerade dabei mich mit den Bluetooth Apis von Android auseinanderzusetzen. Ich habe per Code Bluetooth aktiviert und auch als Sichtbar makiert.
Nun habe ich einen Broadcast Reciver implementiert der bei "BluetoothDevice.ACTION_FOUND"
den Gerätenamen und Adresse in eine ArrayList speichert!
Ich debugge das Ganze auf einem S3 mit Android 4.1 und habe noch ein anderes Androidtablet hier welches ich nutze um es als aktives Bluetooth Gerät zu finden. Bei beiden Geräten ist die Sichtbarkeit an, jedoch kommt es auch nach längerer Wartezeit (ca. 1 min) nicht dazu das ich irgend einen Eintrag in der ArrayList habe.
Hier mal der Code:
Falls ihr wisst wo das Problem liegt wäre ich über Hilfe dankbar
Gruß Ali.
ich bin gerade dabei mich mit den Bluetooth Apis von Android auseinanderzusetzen. Ich habe per Code Bluetooth aktiviert und auch als Sichtbar makiert.
Nun habe ich einen Broadcast Reciver implementiert der bei "BluetoothDevice.ACTION_FOUND"
den Gerätenamen und Adresse in eine ArrayList speichert!
Ich debugge das Ganze auf einem S3 mit Android 4.1 und habe noch ein anderes Androidtablet hier welches ich nutze um es als aktives Bluetooth Gerät zu finden. Bei beiden Geräten ist die Sichtbarkeit an, jedoch kommt es auch nach längerer Wartezeit (ca. 1 min) nicht dazu das ich irgend einen Eintrag in der ArrayList habe.
Hier mal der Code:
Code:
import java.util.ArrayList;
import android.app.*;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.*;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Toast;
public class blueWork extends Activity {
private final static int REQUEST_ENABLE_BT=1;
ArrayList<String> nameArr = new ArrayList(); // Um die Bluetooth-Geräte abzulegen!
ArrayList<String> adressArr = new ArrayList();
BluetoothAdapter mBluetoothAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Bundle extras= new Bundle();
try
{
extras = getIntent().getExtras();
}
catch(Exception e)
{
Toast.makeText(this, "Es ist ein Fehler bei dem Auslesen des Intents aufgetreten", Toast.LENGTH_SHORT).show();
}
String val= extras.get("connectionType").toString();
if(val.equals("Server"))
{
setContentView(R.layout.connect_blue_server);
}
else if(val.equals("Client"))
{
setContentView(R.layout.connect_blue_client);
}
}
//Methode um Bluetooth-support zu prüfen und danach zu aktivieren
public void activBT(View view)
{
if(view.getId() == R.id.bt_activateBT || view.getId()== R.id.bt_search)
{
try
{
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if(mBluetoothAdapter == null)
{
Toast.makeText(this, "Leider unterstützt dieses Gerät kein Bluetooth", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(this, "Bluetooth ist schonmal da!", Toast.LENGTH_LONG).show();
if(mBluetoothAdapter.isEnabled()== false)
{
Intent enableBTIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBTIntent, REQUEST_ENABLE_BT);
}
}
}
catch(Exception e)
{
Toast.makeText(this, e.getMessage().toString(), Toast.LENGTH_LONG).show();
}
}
}
public void discoverBT()
{
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300); //300 sek. sichtbar!
startActivity(discoverableIntent);
}
public void activateForClient(View view)
{
activBT(view);
searchBT(view);
}
public void searchBT(View view)
{
if(view.getId() == R.id.bt_search)
{
discoverBT();
//Jetzt Broadcast Reciver aktivieren falls Bluetooth Geräte gefunden wurden!
final BroadcastReceiver mReciver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if(BluetoothDevice.ACTION_FOUND.equals(action))
{
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
//Adresse und Gerätename wird in eine Arraylist geschrieben!!!
nameArr.add(device.getName());
adressArr.add(device.getAddress());
}
}
};
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReciver, filter);
}
}
public void displayFoundedDevices(View view)
{
mBluetoothAdapter.cancelDiscovery();
try{
if(view.getId()== R.id.bt_geraeteZeigen)
{
Toast.makeText(this, "Im Try Block: "+adressArr.size(), Toast.LENGTH_LONG).show();
}
}
catch(Exception e)
{
Toast.makeText(this, "Im Catch Block: "+e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}
Falls ihr wisst wo das Problem liegt wäre ich über Hilfe dankbar
Gruß Ali.