CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Aide] Bluetooth Android avec Libgdx

MerdeBouillante
MerdeBouillante
Niveau 5
09 mai 2015 à 23:53:56

Salut tout le monde. Je développe un jeu Android avec Libgdx (je me fiche des autres plateformes) et c'est un jeu de rôles en multijoueur donc le realtime n'est pas important (chaque joueur devra attendre son tour).

J'ai cherché comment faire pour faire marcher le Bluetooth avec Libgdx et apparemment ce dernier ne supporte pas le réseau + puisque le Bluetooth est spécifique à une plateforme je doit faire une interface pour l'utiliser dans le projet principal (core) et l'implémenter dans le projet d'Android, ce que j'ai fait.

J'ai implémenté la première méthode (activer le Bluetooth) et j'ai voulu la tester mais je tombe sur une NullPointerException dont je ne comprends pas la source.

Voici le code :

(J'ai fait "extends Activity" parce que la méthode "startActivityForResult()" est une méthode de cette classe et c'est justement dans cette ligne que l'exception se déclenche donc je doute que l'erreur vient de là.)


public class BluetoothImpl extends Activity implements Bluetooth {

	@Override
	public boolean enableBluetooth() {
		BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
		if (mBluetoothAdapter == null) {
		    return false;
		}
		if (!mBluetoothAdapter.isEnabled()) {
		    Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
		    System.out.println("test");
		    startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
		}
		return true;
		
	}

// les autres méthdes ...
}

Ceci est l'appel (dans la méthde show() d'une classe implémentant Screen


textButton.addListener(new ClickListener() {
			@Override
			public void clicked (InputEvent event, float x, float y) {
				super.clicked(event, x, y);
				System.out.println(game.bluetooth.enableBluetooth());
}

Et finalement l'erreur qui apparait
https://image.noelshack.com/fichiers/2015/19/1431208202-error.png

Que peut-être la source de l'erreur?
Et pouvez vous me donner des conseils.

Et merci.

MerdeBouillante
MerdeBouillante
Niveau 5
13 mai 2015 à 01:53:10

Je me réponds au cas où quelqu'un a eu le même problème et tombe sur ce sujet.
En fait dans la classe de l'implémentation de l'interface on ne doit pas hériter de Activity ou quoi que ce soit. On doit plutôt ajouter un paramètre de type Context au constructeur pour l'utiliser plus tard dans les méthodes spécifiques à Android comme par exemple au lieu de faire ça :

startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

on fait ça :

((Activity) appContext).startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

El bien sûr l'appel du constructeur se fait dans la classe principale du projet Android avec la valeur this :

public class AndroidLauncher extends AndroidApplication {
	@Override
	protected void onCreate (Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
		initialize(new AndroidRPG(new BluetoothImpl(this)), config);
	}
}
Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment