From: snickersun Date: Tue, 3 Mar 2020 11:55:34 +0000 (+0800) Subject: 修改SMS命令: X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=2d5d17615f1d68292e7be7c0d2e82ac48d37cd49;p=icsupport.git 修改SMS命令: 1、在IMEI设置过程中添加AT指令设置IMEI的功能,不过IMEI被展讯 disable了,需要继续沟通。 2、添加AT指令执行接口,不过没有反馈at执行结果给手机端,只告诉执行了。 命令格式:#atcmd#=[at cmdline] --- diff --git a/app/src/main/java/com/enqualcomm/support/CoreService.java b/app/src/main/java/com/enqualcomm/support/CoreService.java index 6ae1dc3d..abf3ce89 100644 --- a/app/src/main/java/com/enqualcomm/support/CoreService.java +++ b/app/src/main/java/com/enqualcomm/support/CoreService.java @@ -104,7 +104,7 @@ public class CoreService extends Service { private static final int GRAY_SERVICE_ID =android.os.Process.myPid(); - private static final String MY_WAKE_LOCKTAG = "MyWakelockTag"; + private static final String MY_WAKE_LOCKTAG =CoreService.class.getSimpleName(); public static int alarmCycle = 1; @@ -612,7 +612,7 @@ public class CoreService extends Service { AlarmWakeUp.setAlarmWakeUpTime(); boolean screenon = ((PowerManager)getSystemService(POWER_SERVICE)).isScreenOn(); if (!screenon) { - send_at_to_update_lbs(); + SimSignalUtil.send_at_to_update_lbs(this.runtime); } //这里就是为了省电,如果wifi开启,且屏幕关闭,则wifi也关闭 if (Util.isConnectWifi((this.runtime.getContextProxy()).context) && !screenon) { @@ -725,26 +725,6 @@ public class CoreService extends Service { public boolean onUnbind(Intent paramIntent) { return false; } - public void send_at_to_update_lbs() { - Intent intent = new Intent("com.eqc.intent.action.getTelephony.lbs"); - intent.putExtra("command", "AT+CREG=2"); - intent.putExtra("arg2", ""); - (this.runtime.getContextProxy()).context.sendBroadcast(intent); - ICLogger.i("send_at_to_update_lbs "); - } - - public void send_at_to_onoff_simcard(boolean simon){ - - Intent intent = new Intent("com.eqc.intent.action.getTelephony.lbs"); - if (simon) { - intent.putExtra("command", "AT+SFUN=2"); //开卡 - }else{ - intent.putExtra("command", "AT+SFUN=3");//关卡 - } - intent.putExtra("arg2", ""); - (this.runtime.getContextProxy()).context.sendBroadcast(intent); - ICLogger.i("send_at_to_update_lbs "); - } //每一分钟设置一次 public void setAlarm(int paramInt) { // AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,paramInt,ACTION_ALARM); diff --git a/app/src/main/java/com/enqualcomm/support/ICSmsManager.java b/app/src/main/java/com/enqualcomm/support/ICSmsManager.java index 4bf42a9d..88ae41e7 100644 --- a/app/src/main/java/com/enqualcomm/support/ICSmsManager.java +++ b/app/src/main/java/com/enqualcomm/support/ICSmsManager.java @@ -41,6 +41,9 @@ import rx.functions.Action1; import static com.enqualcomm.support.Config.upload_logs_via_ftp; import static com.enqualcomm.support.Constants.DIALOG_ACTION; import static com.enqualcomm.support.utils.DeviceInfoUtil.getDeviceVersion; +import static com.enqualcomm.support.utils.SimSignalUtil.send_at_cmd; +import static com.enqualcomm.support.utils.SimSignalUtil.send_at_setImei0; +import static com.enqualcomm.support.utils.SimSignalUtil.send_at_setImei1; public class ICSmsManager { @@ -177,19 +180,29 @@ public class ICSmsManager { String reply = "IMEI=" + runtime.IMEI() + "\nSW:" + DeviceInfoUtil.getVersionCode(mContext) + " " + DeviceInfoUtil.getSWVersionDisplayName(); ICLogger.i("SMS " + sms + " reply \n" + reply); sendSMS(phonenumber, reply); - } else if (sms.startsWith("#imei:")) { + } else if (sms.startsWith("#atcmd#=")) { + String cmd = sms.substring(8); + ICLogger.i("atcmd " + cmd); + if (cmd.length() >0 ) { + send_at_cmd(runtime,cmd); + sendSMS(phonenumber, "run At cmd "+cmd+"!"); + } else { + sendSMS(phonenumber, "At cmd empty error!"); + } + }else if (sms.startsWith("#imei:")) { String imei = sms.substring(6); ICLogger.i("SMS " + sms + " imei=" + imei); if (imei.length() == 15) { + send_at_setImei0(runtime,imei); Config.setIMEI(mContext, imei); runtime.setImeiAndCid(imei, ""); - sendSMS(phonenumber, "set IMEI " + imei + " sucess !"); + sendSMS(phonenumber, "set IMEI " + imei + " success !"); CoreService.getInstance().disconnect_server(); CoreService.getInstance().ReConnectToServer(); } else if (imei.equals("reset")) { Config.setIMEI(mContext, ""); runtime.setImeiAndCid(PhoneUtils.getIMEI(mContext), ""); - sendSMS(phonenumber, "reset IMEI to " + PhoneUtils.getIMEI(mContext) + " sucess !"); + sendSMS(phonenumber, "reset IMEI to " + PhoneUtils.getIMEI(mContext) + " success !"); CoreService.getInstance().disconnect_server(); CoreService.getInstance().ReConnectToServer(); } else if (imei.equals("current")) { diff --git a/app/src/main/java/com/enqualcomm/support/LocationClient.java b/app/src/main/java/com/enqualcomm/support/LocationClient.java index d54747ac..e421a942 100644 --- a/app/src/main/java/com/enqualcomm/support/LocationClient.java +++ b/app/src/main/java/com/enqualcomm/support/LocationClient.java @@ -184,7 +184,7 @@ public class LocationClient { private void performAlarm(PowerManager.WakeLock paramWakeLock) { if (!runtime.isAirMode) { updateStepCount();//update StepCount - CellInfoUtil.triggerUpdateCellinfo(); + // CellInfoUtil.triggerUpdateCellinfo(); //这个在locationClinet中也会执行更新 sendBatteryNotification(); } } @@ -393,7 +393,7 @@ public class LocationClient { public void updateCellInfo() { - this.mLbsHelper.getAttchCellInfo(runtime.getContextProxy().getTelephonyManager()); +// this.mLbsHelper.getAttchCellInfo(runtime.getContextProxy().getTelephonyManager()); // CellInfoUtil.triggerUpdateCellinfo(); CellInfoUtil.setCurrentAttachCellInfo(runtime, getLocationWakeLock()); } @@ -405,7 +405,7 @@ public void updateCellInfo() { public PowerManager.WakeLock getLocationWakeLock() { - PowerManager.WakeLock wakeLock = ((PowerManager)(runtime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "locationSend"); + PowerManager.WakeLock wakeLock = ((PowerManager)(runtime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this.getClass().getSimpleName()); wakeLock.acquire(1000L); return wakeLock; } diff --git a/app/src/main/java/com/enqualcomm/support/MainActivity.java b/app/src/main/java/com/enqualcomm/support/MainActivity.java index 3ff21750..a6537e8f 100644 --- a/app/src/main/java/com/enqualcomm/support/MainActivity.java +++ b/app/src/main/java/com/enqualcomm/support/MainActivity.java @@ -16,6 +16,7 @@ import android.widget.ToggleButton; import com.enqualcomm.support.R; import com.enqualcomm.support.utils.DeviceInfoUtil; +import com.enqualcomm.support.utils.SimSignalUtil; import com.ic.jni.ICJniUtils; import com.enqualcomm.support.CoreService; import com.enqualcomm.support.utils.ICLogger; @@ -64,7 +65,7 @@ public class MainActivity extends AppCompatActivity { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { - CoreService.getInstance().send_at_to_onoff_simcard(b); + SimSignalUtil.send_at_to_onoff_simcard(CoreService.getInstance().runtime); } }); ToggleButton tbtnblood = (ToggleButton)findViewById(R.id.toggleButton2); diff --git a/app/src/main/java/com/enqualcomm/support/utils/SimSignalUtil.java b/app/src/main/java/com/enqualcomm/support/utils/SimSignalUtil.java index 1a043d90..847b0f76 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/SimSignalUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/SimSignalUtil.java @@ -200,18 +200,35 @@ public class SimSignalUtil { return lisScreenOn; } - public void send_at_to_onoff_simcard(Runtime runtime,boolean simon){ + public static void send_at_to_onoff_simcard(Runtime runtime){ Intent intent = new Intent("com.eqc.intent.action.getTelephony.lbs"); - if (simon) { - intent.putExtra("command", "AT+SFUN=2"); //开卡 - }else{ - intent.putExtra("command", "AT+SFUN=3");//关卡 - } + intent.putExtra("command", "AT+SFUN=2"); //重新初始化sim卡 intent.putExtra("arg2", ""); ( runtime.getContextProxy()).context.sendBroadcast(intent); ICLogger.i("send_at_to_update_lbs "); } + public static void send_at_to_update_lbs(Runtime runtime) { + Intent intent = new Intent("com.eqc.intent.action.getTelephony.lbs"); + intent.putExtra("command", "AT+CREG=2"); + intent.putExtra("arg2", ""); + (runtime.getContextProxy()).context.sendBroadcast(intent); + ICLogger.i("send_at_to_update_lbs "); + } + + public static void send_at_cmd(Runtime runtime, String cmd){ + Intent intent = new Intent("com.eqc.intent.action.getTelephony.lbs"); + intent.putExtra("command", cmd); + intent.putExtra("arg2", ""); + ( runtime.getContextProxy()).context.sendBroadcast(intent); + ICLogger.i("send_at_cmd "+cmd); + } + public static void send_at_setImei0(Runtime runtime, String imei){ + send_at_cmd(runtime,"AT+SPIMEI=0,"+imei); + } + public static void send_at_setImei1(Runtime runtime, String imei){ + send_at_cmd(runtime,"AT+SPIMEI=1,"+imei); + } public void setAirMode(String paramString) {