Naar content
Trending apps
  • Google Duo: videogesprekken van hoge kwaliteit

  • Gmail

  • Maps: Navigatie en OV

  • WhatsApp Messenger

  • Messenger: gratis sms'en en videobellen

Trending games
  • Fortnite

  • Minecraft Earth

  • Dr. Mario World

  • Harry Potter: Wizards Unite

  • Breaking Bad: Criminal Elements

Trending smartphones
  • OnePlus Nord N10 5G

  • POCO X3

  • Google Pixel 5

  • Google Pixel 4a

  • OnePlus Nord

Nieuwste tablets
  • Samsung Galaxy Tab S6

  • Samsung Galaxy Tab A 10.5

  • Samsung Galaxy Tab S4

  • Samsung Galaxy Tab S3 9.7

  • Asus Zenpad 3S 10

mariusvanhorssen

  • Lid sinds 17 augustus 2012
  • Berichten 5
  • Reputatie 0
  • #1
  • 4 september 2012
  • 20:05

Ik ben een test app aan het schrijven, om een serieele verbinding op te zetten via bluetooth. Maar zodra ik even wil checken of mijn bluetooth adapter ge-enabled is crashed de app meteen. Ik heb werkelijk geen idee meer wat er fout gaat. Mijn code is:

package com.example.bluetooth.test.app;


import java.io.IOException;
import java.io.OutputStream;
import java.util.Set;
import java.util.UUID;


import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import android.support.v4.app.NavUtils;


public class MainActivity extends Activity
{
Button mBtnBluetooth;
TextView textviewTest;


@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mBtnBluetooth = (Button) findViewById(R.id.mBtnBluetooth);
textviewTest = (TextView) findViewById(R.id.textViewTest);
}





public void SendViaBluetooth(View view)
{

if (view == mBtnBluetooth)
{

BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();

if (bluetooth == null)
{
Toast.makeText(this, “Geen bluetooth adapter beschikbaar”, Toast.LENGTH_LONG).show();
finish();
}


if (!bluetooth.isEnabled())
{
Toast.makeText(this, “Bluetooth is uitgeschakeld”, Toast.LENGTH_LONG).show();
}


final UUID SERIAL_UUID = UUID.fromString(“00001101-0000-1000-8000-00805F9B34FB”);//UUID voor serial connection
String mac = “00:15:83:00:ef:66”; // remote mac adres
BluetoothDevice device = bluetooth.getRemoteDevice(mac); // mac adres, apparaat moet al gekoppeld zijn


BluetoothSocket socket = null;
OutputStream out = null;
try
{
socket = device.createRfcommSocketToServiceRecord(SERIAL_UUID);
}
catch (IOException e) {}

try
{
socket.connect();
out = socket.getOutputStream();
out.write(0x01); //schrijven via virtuele com poort
}
catch (IOException e) {}

}

}


}

Using permission: android.permission.BLUETOOTH


Als ik alle code vanaf hier afster, dan gaat het goed (wel logisch):

if (!bluetooth.isEnabled())
{
Toast.makeText(this, “Bluetooth is uitgeschakeld”, Toast.LENGTH_LONG).show();
}
Maar zodra ik deze regel toevoeg gaat het mis: if (!bluetooth.isEnabled())
Ik mag dus niet vragen of de bluetooth adapter is ingeschakeld. Maar als ik een ander stukje code probeer dat gebruikt maakt van bluetooth crashed de boel ook meteen. Heeft iemand een idee?

Bewerkt (24 april 2013 15:31)

BozeVogel

  • Lid sinds 20 oktober 2011
  • Berichten 152
  • Reputatie 0
  • #2
  • 5 september 2012
  • 20:31

Gebruik je de emulator?
Zo ja, test het eens met je telefoon, want ik denk dat de emulator geen bluetooth ondersteunt.

En de Android Developers website geeft aan dat als je checkt voor

bluetooth.isEnabled();
en dat false oplevert, dat je device geen bluetooth ondersteunt. Jij hebt vervolgens geen actie ondernomen (je laat alleen een toast zien) en je gaat gewoon verder met die method. Dus als er iets niet klopt met je bluetooth, dendert je app gewoon door

Bewerkt (24 april 2013 15:31)

mariusvanhorssen

  • Lid sinds 17 augustus 2012
  • Berichten 5
  • Reputatie 0
  • #3
  • 5 september 2012
  • 22:21

Ik heb vandaag de fout na lang zoeken weten te vinden. Ik had de permission bluetooth aangemaakt. Maar toen ik in de manifest.xml ging kijken stond er:

<permission android:name=“android.permission.BLUETOOTH” />

Dit leek goed, maar na verder kijken kwam ik er achter dat het moest zijn:

<uses-permission android:name=“android.permission.BLUETOOTH” />

Dus simpel het woordje uses toevoegen

Bewerkt (24 april 2013 15:31)

Reageer

Om te reageren, dien je te zijn ingelogd. Druk op de onderstaande knop om in te loggen of maak een nieuwe account aan.

Inloggen Registreren