Comment faire pour déplacer Bluetooth activité dans un Service
L'application donne aux utilisateurs de 2 options de connexion, USB et Bluetooth. USB fonctionne très bien. J'ai obtenu des exemples de codes pour la connexion Bluetooth, cependant, ils sont conçus pour fonctionner comme une activité. J'ai essayé de le faire dans un Service, mais a échoué.
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
startService(new Intent(this, MyService.class));
<service android:enabled="true" android:name=".MyService" />
enter code here
J'ai besoin d'établir une communication Bluetooth avec un appareil qui est déjà jumelé et son adresse MAC est connue. Donc, je ne peux ignorer la découverte et de couplage des phases. L'appareil que je suis en train d'essayer de se connecter est toujours détectable et en attente de connexion. Est-il un moyen de le faire à partir d'une Classe de Service et maintenir en place à travers d'autres activités?
Je suis en utilisant BluetoothChatService
et DeviceListActivity
Vous devez vous connecter pour publier un commentaire.
J'ai écrit un services Bluetooth qui fonctionne dans le fond et ne peut communiquer à toute Activité dans l'application à l'aide de Messenger http://developer.android.com/guide/components/bound-services.html.
Mise à JOUR
vous devez utiliser le Gestionnaire de votre MyApplication Classe
AbstractActivity
n'est rien mais une base de l'activité pour l'ensemble de vos activités, il suffit donc de créer un résumé classs qui s'étendActivity
, puis dans toute votre activité à peine s'étend votre baseActivity au lieu deActivity
mHandler = ((MyAplication) getApplication()).getHandler();
J'ai aussi un MyApplication Classe, mais ne savent pas comment passer de Gestionnaire à elle.Activity
Classes étendreBaseActivity
.MyApplication
a un Gestionnaire avec les setters et getters. AjoutéPrinterService
dansAndroidManifest.xml
.public static Device device = null; device = (Device) intent.getSerializableExtra(BT_DEVICE); deviceName = device.getDeviceName(); String macAddress = device.getMacAddress();
getDeviceName() et getMacAddress() n'est pas défini, donc je l'ai changé pour:public static BluetoothDevice device = null; device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); String macAddress = device.getAddress();
arriver NullPointerExceptionpublic static BluetoothDevice device = null; String macAddress = intent.getExtras().getString(DeviceListActivity.EXTRA_DEVICE_ADDRESS); BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(macAddress);
NullPointerException de nouveauMyAplication
doit-elle contenir? Ou en quelle classe est-il, celui qui commence le service? Merci