diff --git a/src/app/src/main/AndroidManifest.xml b/src/app/src/main/AndroidManifest.xml
index b23efec..ac5506c 100644
--- a/src/app/src/main/AndroidManifest.xml
+++ b/src/app/src/main/AndroidManifest.xml
@@ -11,6 +11,7 @@
+
+ tools:targetApi="30">
= Build.VERSION_CODES.O_MR1) {
+ responseSms.append("Location is off. Unable to execute command.");
+ Utils.sendSms(smsManager, responseSms.toString(), sender);
+ return;
+ }
+
WifiManager wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
responseSms.append("Wifi enabled: ");
- if(!wifiManager.isWifiEnabled()){
+ if (!wifiManager.isWifiEnabled()) {
responseSms.append("No");
- }
- else{
- responseSms.append("Yes\n");
-
- WifiInfo wifiInfo = wifiManager.getConnectionInfo();
- String ssid = (wifiInfo.getSSID().equals(WifiManager.UNKNOWN_SSID))?
- "Not connected or unknown" : wifiInfo.getSSID();
-
- responseSms.append("SSID: ").append(ssid).append("\n");
- responseSms.append("BSSID: ").append(wifiInfo.getBSSID()).append("\n");
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
- responseSms.append("Strength: ").append(wifiManager.calculateSignalLevel(wifiInfo.getRssi()))
- .append("/").append(wifiManager.getMaxSignalLevel()).append("\n");
- }
+ Utils.sendSms(smsManager, responseSms.toString(), sender);
+ return;
}
+ responseSms.append("Yes\n");
+ WifiInfo wifiInfo = wifiManager.getConnectionInfo();
+ String ssid = (wifiInfo.getSSID().equals(WifiManager.UNKNOWN_SSID)) ?
+ "Not connected or unknown" : wifiInfo.getSSID();
+ String bssid = (wifiInfo.getBSSID().equals("02:00:00:00:00:00")) ?
+ "Not connected or unknown" : wifiInfo.getBSSID();
+ responseSms.append("SSID: ").append(ssid).append("\n");
+ responseSms.append("BSSID: ").append(bssid).append("\n");
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ responseSms.append("Strength: ").append(wifiManager.calculateSignalLevel(wifiInfo.getRssi()))
+ .append("/").append(wifiManager.getMaxSignalLevel()).append("\n");
+ }
responseSms.append("\nNearby networks:");
List scanResults = wifiManager.getScanResults();
- for(ScanResult scanResult : scanResults){
+ for (ScanResult scanResult : scanResults) {
responseSms.append("\n");
responseSms.append("SSID: ").append(scanResult.SSID).append("\n");
responseSms.append("BSSID: ").append(scanResult.BSSID).append("\n");
@@ -269,5 +280,23 @@ public class SmsHandler {
}
Utils.sendSms(smsManager, responseSms.toString(), sender);
}
+
+ // wifi-enabled OR wifi-disabled
+ else if(providedOption.contains(Utils.WIFI_OPTION) && (providedOption.contains(Utils.WIFI_ENABLE_SUBOPTION)
+ || providedOption.contains(Utils.WIFI_DISABLE_SUBOPTION))){
+
+ StringBuilder responseSms = new StringBuilder();
+ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q){
+ responseSms.append("Your device does not support this option.");
+ Utils.sendSms(smsManager, responseSms.toString(), sender);
+ return;
+ }
+
+ WifiManager wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
+ wifiManager.setWifiEnabled(providedOption.contains(Utils.WIFI_ENABLE_SUBOPTION));
+ responseSms.append("Command executed");
+ Utils.sendSms(smsManager, responseSms.toString(), sender);
+ }
+
}
}
diff --git a/src/app/src/main/java/com/xfarrow/locatemydevice/Utils.java b/src/app/src/main/java/com/xfarrow/locatemydevice/Utils.java
index 8750176..c7c8268 100644
--- a/src/app/src/main/java/com/xfarrow/locatemydevice/Utils.java
+++ b/src/app/src/main/java/com/xfarrow/locatemydevice/Utils.java
@@ -17,6 +17,8 @@ public class Utils {
public static final String BATTERY_OPTION = "battery";
public static final String CALL_ME_OPTION = "callme";
public static final String WIFI_OPTION = "wifi";
+ public static final String WIFI_ENABLE_SUBOPTION = "-enable";
+ public static final String WIFI_DISABLE_SUBOPTION = "-disable";
public static String getCountryNameByIso(String iso){
Locale locale = new Locale("", iso);