DigiWallet - din Smart plånbok (Intel IoT) (7 / 9 steg)
Steg 7: Android ansökan kod
paketet 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;
import java.util.Set;
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;
import android.support.v4.app.NotificationCompat;
allmän klass MainActivity sträcker sig aktiviteten {
privata statisk sista int REQUEST_ENABLE_BT = 1;
privat knappen onBtn;
privat knappen offBtn;
privat knappen listBtn;
privat knappen findBtn;
privat TextView text;
privat BluetoothAdapter myBluetoothAdapter;
privat Set pairedDevices;
privat ListView myListView;
privat ArrayAdapter BTArrayAdapter;
NotificationCompat.Builder mBuilder = ny NotificationCompat.Builder(this);
skyddade void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter filter1 = nya IntentFilter(BluetoothDevice.ACTION_ACL_CONNECTED);
IntentFilter filter2 = ny IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED);
IntentFilter filter3 = ny IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED);
this.registerReceiver (bReceiver, filter1);
this.registerReceiver (bReceiver, filter2);
this.registerReceiver (bReceiver, filter3);
ta en instans av BluetoothAdapter - Bluetooth-radion
myBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
IF(myBluetoothAdapter == null) {
onBtn.setEnabled(false);
offBtn.setEnabled(false);
listBtn.setEnabled(false);
findBtn.setEnabled(false);
text.setText ("Status: stöds inte");
Toast.makeText (getApplicationContext (), "enheten inte stöder Bluetooth",
Toast.LENGTH_LONG).show();
} annat {
text = (TextView) findViewById(R.id.text);
onBtn = (Button)findViewById(R.id.turnOn);
onBtn.setOnClickListener (nya OnClickListener() {
public void VidKlickning (Visa v) {
TODO autogenererade metod stub
on(v);
}
});
offBtn = (Button)findViewById(R.id.turnOff);
offBtn.setOnClickListener (nya OnClickListener() {
public void VidKlickning (Visa v) {
TODO autogenererade metod stub
Off(v);
}
});
listBtn = (Button)findViewById(R.id.paired);
listBtn.setOnClickListener (nya OnClickListener() {
public void VidKlickning (Visa v) {
TODO autogenererade metod stub
List(v);
}
});
findBtn = (Button)findViewById(R.id.search);
findBtn.setOnClickListener (nya OnClickListener() {
public void VidKlickning (Visa v) {
TODO autogenererade metod stub
Find(v);
}
});
myListView = (ListView)findViewById(R.id.listView1);
skapa den arrayAdapter som innehåller BTDevices och sätta den till ListView
BTArrayAdapter = ny ArrayAdapter (denna, android. R.layout.simple_list_item_1);
myListView.setAdapter(BTArrayAdapter);
}
}
public void på (vy) {
om (! myBluetoothAdapter.isEnabled()) {
Uppsåt turnOnIntent = ny Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult (turnOnIntent, REQUEST_ENABLE_BT);
Toast.makeText (getApplicationContext (), "Bluetooth aktiverat",
Toast.LENGTH_LONG).show();
}
annat {
Toast.makeText (getApplicationContext (), "Bluetooth är redan på",
Toast.LENGTH_LONG).show();
}
}
skyddade void onActivityResult (int requestCode, int resultCode, uppsåt data) {
TODO autogenererade metod stub
IF(requestCode == REQUEST_ENABLE_BT) {
IF(myBluetoothAdapter.isEnabled()) {
text.setText ("Status: aktiverad");
} annat {
text.setText ("Status: funktionshindrade");
}
}
}
public void lista (vy) {
få ihopkopplade enheter
pairedDevices = myBluetoothAdapter.getBondedDevices();
sätt det är en till adaptern
för (BluetoothDevice enhet: pairedDevices)
BTArrayAdapter.add(device.getName() + "\n" + device.getAddress());
Toast.makeText (getApplicationContext (), "Visa ihopkopplade enheter"
Toast.LENGTH_SHORT).show();
}
sista BroadcastReceiver bReceiver = ny BroadcastReceiver() {
public void onReceive (kontext sammanhang, avsikt intent) {
Sträng åtgärd = intent.getAction();
När discovery finner en enhet
om (BluetoothDevice.ACTION_FOUND.equals(action)) {
Få BluetoothDevice objektet från avsikten
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
lägga till namnet och MAC-adressen för objektet i arrayAdapter
BTArrayAdapter.add(device.getName() + "\n" + device.getAddress());
BTArrayAdapter.notifyDataSetChanged();
}
om (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) {
Enheten är nu ansluten
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
Toast.makeText (getApplicationContext (), "Enheten är nu ansluten",
Toast.LENGTH_SHORT).show();
mBuilder.setSmallIcon(R.drawable.abc_ic_menu_cut_mtrl_alpha);
mBuilder.setContentTitle ("DigiWallet: Alert");
mBuilder.setContentText ("din plånbok ansluten till din enhet!");
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
}
om (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
Gjort söka
Toast.makeText (getApplicationContext (), "Gjort söka",
Toast.LENGTH_SHORT).show();
}
om (BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED.equals(action)) {
Enheten är på väg att koppla bort
Toast.makeText (getApplicationContext (), "Enheten är på väg att koppla bort",
Toast.LENGTH_SHORT).show();
}
om (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) {
Enheten har kopplat
Toast.makeText (getApplicationContext (), "Enhet har kopplats ur",
Toast.LENGTH_SHORT).show();
mBuilder.setSmallIcon(R.drawable.abc_ic_menu_cut_mtrl_alpha);
mBuilder.setContentTitle ("DigiWallet: Alert");
mBuilder.setContentText ("plånboken verkar vara utom räckhåll! Vänligen kontrollera din omgivning");
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationID kan du uppdatera anmälan senare.
mNotificationManager.notify (1, mBuilder.build());
}
}
};
public void hitta (vy) {
om (myBluetoothAdapter.isDiscovering()) {
trycker på knappen när den upptäcker, så Avbryt upptäckten
myBluetoothAdapter.cancelDiscovery();
}
annat {
BTArrayAdapter.clear();
myBluetoothAdapter.startDiscovery();
registerReceiver (bReceiver, nya IntentFilter(BluetoothDevice.ACTION_FOUND));
}
}
public void off (vy) {
myBluetoothAdapter.disable();
text.setText ("Status: frånkopplad");
Toast.makeText (getApplicationContext (), "Bluetooth avstängd",
Toast.LENGTH_LONG).show();
}
skyddade void onDestroy() {
TODO autogenererade metod stub
super.onDestroy();
unregisterReceiver(bReceiver);
}
}
Denna klass kontrollerar anslutningen och skicka tillkännagivanden alert om plånboken går utanför intervallet eller kommer tillbaka i intervallet.