diff --git a/Application/src/main/AndroidManifest.xml b/Application/src/main/AndroidManifest.xml
index e56cc40..f317c4f 100644
--- a/Application/src/main/AndroidManifest.xml
+++ b/Application/src/main/AndroidManifest.xml
@@ -31,6 +31,9 @@
+
diff --git a/Application/src/main/java/fr/centralesupelec/students/clientble/DeviceScanActivity.java b/Application/src/main/java/fr/centralesupelec/students/clientble/DeviceScanActivity.java
index 9ae204c..6af05ea 100644
--- a/Application/src/main/java/fr/centralesupelec/students/clientble/DeviceScanActivity.java
+++ b/Application/src/main/java/fr/centralesupelec/students/clientble/DeviceScanActivity.java
@@ -26,8 +26,10 @@ import android.bluetooth.BluetoothManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
+import android.provider.Settings;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater;
@@ -54,6 +56,7 @@ public class DeviceScanActivity extends ListActivity {
private static final int REQUEST_ENABLE_COARSE_LOCATION = 2;
private static final int REQUEST_ENABLE_BT = 1;
+
// Stops scanning after 10 seconds.
private static final long SCAN_PERIOD = 10000;
@@ -145,13 +148,32 @@ public class DeviceScanActivity extends ListActivity {
protected void onResume() {
super.onResume();
+ // Vérifie si le service de localisation est actif sur l’appareil
+ boolean location_enabled;
+ try {
+ location_enabled = Settings.Secure.LOCATION_MODE_OFF !=
+ Settings.Secure.getInt(
+ getContentResolver(),
+ Settings.Secure.LOCATION_MODE
+ );
+ } catch (Exception e) {
+ e.printStackTrace();
+ location_enabled = false;
+ }
+
+ // Si le service de localisation n’est pas activé,
+ // demande de l’activer dans les paramètres du système.
+ if (!location_enabled) {
+ Toast.makeText(this, "Prière d’activer une source de localisation.", Toast.LENGTH_LONG).show();
+ Intent enableLocationIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
+ startActivity(enableLocationIntent);
+ }
+
// Ensures Bluetooth is enabled on the device. If Bluetooth is not currently enabled,
// fire an intent to display a dialog asking the user to grant permission to enable it.
if (!mBluetoothAdapter.isEnabled()) {
- if (!mBluetoothAdapter.isEnabled()) {
- Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
- startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
- }
+ Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
+ startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
// Initializes list view adapter.
@@ -181,24 +203,12 @@ public class DeviceScanActivity extends ListActivity {
protected void onListItemClick(ListView l, View v, int position, long id) {
final BluetoothDevice device = mLeDeviceListAdapter.getDevice(position);
if (device == null) return;
- if (false) {
- final Intent intent = new Intent(this, DeviceControlActivity.class);
- intent.putExtra(DeviceControlActivity.EXTRAS_DEVICE_NAME, device.getName());
- intent.putExtra(DeviceControlActivity.EXTRAS_DEVICE_ADDRESS, device.getAddress());
- if (mScanning) {
- mBluetoothAdapter.stopLeScan(mLeScanCallback);
- mScanning = false;
- }
- startActivity(intent);
- } else {
- final Intent intent = new Intent(this, SimpleDetailActivity.class);
- intent.putExtra(SimpleDetailActivity.EXTRAS_DEVICE_NAME, device.getName());
- intent.putExtra(SimpleDetailActivity.EXTRAS_DEVICE_ADDRESS, device.getAddress());
- if (mScanning) {
- mBluetoothAdapter.stopLeScan(mLeScanCallback);
- mScanning = false;
- }
- startActivity(intent);
+ final Intent intent = new Intent(this, SimpleDetailActivity.class);
+ intent.putExtra(SimpleDetailActivity.EXTRAS_DEVICE_NAME, device.getName());
+ intent.putExtra(SimpleDetailActivity.EXTRAS_DEVICE_ADDRESS, device.getAddress());
+ if (mScanning) {
+ mBluetoothAdapter.stopLeScan(mLeScanCallback);
+ mScanning = false;
}
}
diff --git a/TODO.md b/TODO.md
index 36212e2..d94658c 100644
--- a/TODO.md
+++ b/TODO.md
@@ -3,15 +3,24 @@
Par ordre décroissant d’urgence :
+- documentation du code Android ;
- prise en charge de l’écriture des caractéristiques ;
- ...
- bouton « presse-papier »
- bouton « partager » avec date, description etc.
- historique ou graphe des mesures.
-Fait
------
+Soutenance
+----------
+- diapositives + présentation : 20'
+- démo
+
+
+Fait
+----
+
+- vérification de l’activation de la localisation ;
- affichage de la date de la dernière mesure ;
- prise en charge des notifications des caractéristiques ;
- filtrage des services et caractéristiques dans l’activité « DeviceControl » ;