Étape 7: Application Android Code
package com.java.android.digiwallet;import android.os.Bundle ; Import android.app.Activity ; Import android.bluetooth.BluetoothAdapter ; Import android.bluetooth.BluetoothDevice ; Import android.content.BroadcastReceiver ; Import android.content.Context ; java.util.Set d’importation ; Import android.content.Intent ; Import android.content.IntentFilter ; Import android.view.View ; Import android.view.View.OnClickListener ; Import android.widget.ArrayAdapter ; Import android.widget.Button ; Import android.widget.ListView ; Import android.widget.TextView ; Import android.widget.Toast ; android.support.v4.app.NotificationCompat;public class MainActivity étend l’activité d’importation {privé public static final int REQUEST_ENABLE_BT = 1; privé touche onBtn privé offBtn bouton privé touche listBtn ; privé touche findBtn ; privé texte TextView ; privé BluetoothAdapter myBluetoothAdapter ; pairedDevices Set privé ; privé ListView myListView ; private ArrayAdapter BTArrayAdapter ; NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) ; protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState) ; setContentView(R.layout.activity_main) ; IntentFilter filter1 = new IntentFilter(BluetoothDevice.ACTION_ACL_CONNECTED) ; IntentFilter filter2 = new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED) ; IntentFilter filter3 = new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED) ; this.registerReceiver (bReceiver, filter1) ; this.registerReceiver (bReceiver, filter2) ; this.registerReceiver (bReceiver, filter3) ; prennent une instance de BluetoothAdapter - Bluetooth radio myBluetoothAdapter = BluetoothAdapter.getDefaultAdapter() ; if(myBluetoothAdapter == null) {onBtn.setEnabled(false) ; offBtn.setEnabled(false) ; listBtn.setEnabled(false) ; findBtn.setEnabled(false) ; text.setText ("statut : non pris en charge") ; Toast.makeText (getApplicationContext (), "votre appareil ne supporte pas le Bluetooth", Toast.LENGTH_LONG).show() ; } d’autre {texte = findViewById(R.id.text) (TextView); onBtn = (Button)findViewById(R.id.turnOn) ; onBtn.setOnClickListener (OnClickListener() nouveau {public void onClick (View v) {/ / TODO auto-généré méthode stub on(v);}}); offBtn = (Button)findViewById(R.id.turnOff) ; offBtn.setOnClickListener (new OnClickListener() {public void onClick (View v) {/ / TODO auto-généré méthode stub off(v);}}); listBtn = (Button)findViewById(R.id.paired) ; listBtn.setOnClickListener (new OnClickListener() {public void onClick (View v) {/ / TODO auto-généré méthode stub list(v);}}); findBtn = (Button)findViewById(R.id.search) ; findBtn.setOnClickListener (new OnClickListener() {public void onClick (View v) {/ / TODO auto-généré méthode stub find(v);}}); myListView = (ListView) findViewById ( R.id.listView1) ; créer l’arrayAdapter qui contient le BTDevices et affectez-lui la ListView BTArrayAdapter = new ArrayAdapter (Thi, android. R.Layout.simple_list_item_1) ; myListView.setAdapter(BTArrayAdapter) ; }} public void sur (vue) {si (! myBluetoothAdapter.isEnabled()) {intention turnOnIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE) ; startActivityForResult (turnOnIntent, REQUEST_ENABLE_BT) ; Toast.makeText (getApplicationContext (), "Bluetooth allumé", Toast.LENGTH_LONG).show() ; } else {Toast.makeText (getApplicationContext (), "Bluetooth est déjà allumé", Toast.LENGTH_LONG).show();}} protected void onActivityResult (int requestCode, int resultCode, données Intent) {/ / TODO auto-généré méthode stub if(requestCode == REQUEST_ENABLE_BT) {if(myBluetoothAdapter.isEnabled()) {text.setText ("statut : activé");} d’autre {text.setText ("statut : Disabled");}}} publique void liste (vue) {/ / get couplés pairedDevices = myBluetoothAdapter.getBondedDevices(); / / c' est celui de l’adaptateur pour le mettre (BluetoothDevice dispositif : pairedDevices) BTArrayAdapter.add(device.getName() + "\n" + device.getAddress()) ; Toast.makeText (getApplicationContext (), « Afficher les périphériques jumelés », Toast.LENGTH_SHORT).show() ; } final BroadcastReceiver bReceiver = new BroadcastReceiver() {public onReceive Sub (contexte, intention intention) {String action = intent.getAction(); / / quelle découverte détecte un périphérique si (BluetoothDevice.ACTION_FOUND.equals(action)) {/ / extraire l’objet de BluetoothDevice de l’appareil d’intention BluetoothDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); / / add le nom et l’adresse MAC de l’objet au arrayAdapter BTArrayAdapter.add(device.getName() + « \n » + device.getAddress()) ; BTArrayAdapter.notifyDataSetChanged() ; } Si (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) {/ / périphérique est connecté maintenant / / dispositif de BluetoothDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE) ; Toast.makeText (getApplicationContext (), "L’appareil est connecté maintenant", Toast.LENGTH_SHORT).show() ; mBuilder.setSmallIcon(R.drawable.abc_ic_menu_cut_mtrl_alpha) ; mBuilder.setContentTitle ("DigiWallet : alerte") ; mBuilder.setContentText ("votre portefeuille connecté à votre appareil!"); MNotificationManager NotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE) ; } Si (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {/ / fait la recherche Toast.makeText (getApplicationContext (), "Fait de la recherche", Toast.LENGTH_SHORT).show();} si (BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED.equals(action)) {/ / dispositif va se déconnecter Toast.makeText (() getApplicationContext, "Dispositif s’apprête à déconnecter", Toast.LENGTH_SHORT).show();} si (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) {/ / appareil a déconnecté Toast.makeText (getApplicationContext (), "Appareil a déconnecté", Toast.LENGTH_SHORT).show() ; mBuilder.setSmallIcon(R.drawable.abc_ic_menu_cut_mtrl_alpha) ; mBuilder.setContentTitle ("DigiWallet : alerte"); mBuilder.setContentText ("votre portefeuille semble être hors de portée ! S’il vous plaît vérifier votre environnement ») ; MNotificationManager NotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); / / notificationID permet de mettre à jour de la notification par la suite. mNotificationManager.notify (1, mBuilder.build()) ; } } }; public void trouver (vue) {si (myBluetoothAdapter.isDiscovering()) {/ / la touche lorsqu’il détecte, jusqu'à annuler la découverte myBluetoothAdapter.cancelDiscovery();} else {BTArrayAdapter.clear() ; myBluetoothAdapter.startDiscovery() ; registerReceiver (bReceiver, nouvelle IntentFilter(BluetoothDevice.ACTION_FOUND));}} public void off (vue) {myBluetoothAdapter.disable() ; text.setText ("statut : déconnecté") ; Toast.makeText (getApplicationContext (), "Bluetooth désactivé", Toast.LENGTH_LONG).show() ; } protected void onDestroy() {/ / TODO auto-généré méthode stub super.onDestroy() ; unregisterReceiver(bReceiver);}}
Cette classe vérifie la connexion et envoyer l’alerte de notification si le portefeuille est hors de portée ou revient dans la gamme.