diff options
Diffstat (limited to 'Defogger/src/no/mork/android/defogger/MainActivity.java')
-rw-r--r-- | Defogger/src/no/mork/android/defogger/MainActivity.java | 65 |
1 files changed, 54 insertions, 11 deletions
diff --git a/Defogger/src/no/mork/android/defogger/MainActivity.java b/Defogger/src/no/mork/android/defogger/MainActivity.java index 69682ad..e3c1de3 100644 --- a/Defogger/src/no/mork/android/defogger/MainActivity.java +++ b/Defogger/src/no/mork/android/defogger/MainActivity.java @@ -1,7 +1,11 @@ package no.mork.android.defogger; import android.app.Activity; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothManager; +import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager; import android.os.Bundle; import android.view.View; import android.widget.Button; @@ -10,6 +14,10 @@ import android.widget.TextView; import no.mork.android.defogger.ScannerActivity; public class MainActivity extends Activity { + + private static final int REQUEST_ENABLE_BT = 0x1042; + private BluetoothAdapter bluetoothAdapter; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -18,30 +26,65 @@ public class MainActivity extends Activity { Button start_scan = (Button) findViewById(R.id.start_scan); // button2 = (Button) findViewById(R.id.button2); - start_scan.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(view.getContext(), ScannerActivity.class); - startActivityForResult(intent, 1); + startActivityForResult(intent, R.id.hello_text); } }); } @Override + protected void onResume() { + super.onResume(); + + getBluetoothAdapter(); + } + + + @Override protected void onActivityResult(int requestCode, int resultCode, Intent dataIntent) { super.onActivityResult(requestCode, resultCode, dataIntent); + switch (requestCode) { + case REQUEST_ENABLE_BT: + if (resultCode != RESULT_OK) { // user refused to enable BT? + // logError("BT disabled."); + finish(); + } + + break; + default: + TextView hello_text = (TextView) findViewById(requestCode); + String messageReturn = resultCode == RESULT_OK ? dataIntent.getStringExtra("scan_ret") : "not OK"; + hello_text.setText(messageReturn); + } + } - switch (requestCode) - { - case 1: - TextView hello_text = (TextView) findViewById(R.id.hello_text); - if(resultCode == RESULT_OK) - { - String messageReturn = dataIntent.getStringExtra("scan_ret"); - hello_text.setText(messageReturn); - } + // find and enable a bluetooth adapter with LE support + protected void getBluetoothAdapter() { + final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); + bluetoothAdapter = bluetoothManager.getAdapter(); + + + // Bluetooth is not supported? + if (bluetoothAdapter == null) { + // logError("BT unsupported."); + finish(); + } + + // Check low energy support + if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { + // Get a newer device + // logError("No LE Support."); + finish(); } + + // Request user permission to enable Bluetooth. + if (!bluetoothAdapter.isEnabled()) { + Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); + startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); + } } } |