<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource:2.2.2@aar" level="project" />\r
<orderEntry type="library" name="Gradle: __local_aars__:D.\workspace\icsupport\app\libs\android-logging-log4j-1.0.3.jar:unspecified@jar" level="project" />\r
<orderEntry type="library" name="Gradle: __local_aars__:D.\workspace\icsupport\app\libs\ftp4j-1.7.2.jar:unspecified@jar" level="project" />\r
- <orderEntry type="library" name="Gradle: __local_aars__:D.\workspace\icsupport\app\libs\LauncherCtrl.jar:unspecified@jar" level="project" />\r
<orderEntry type="library" name="Gradle: __local_aars__:D.\workspace\icsupport\app\libs\log4j-1.2.17.jar:unspecified@jar" level="project" />\r
<orderEntry type="library" name="Gradle: __local_aars__:D.\workspace\icsupport\app\libs\okio-2.4.3.jar:unspecified@jar" level="project" />\r
<orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout-solver:1.1.3@jar" level="project" />\r
<orderEntry type="library" name="Gradle: com.kymjs.rxvolley:rxvolley:1.1.3@aar" level="project" />\r
<orderEntry type="library" name="Gradle: io.reactivex:rxandroid:1.1.0@aar" level="project" />\r
<orderEntry type="module" module-name="dNSCache" />\r
+ <orderEntry type="module" module-name="dNSCache" />\r
+ <orderEntry type="module" module-name="dNSCache" />\r
+ <orderEntry type="module" module-name="dNSCache" />\r
+ <orderEntry type="module" module-name="dNSCache" />\r
</component>\r
</module>
\ No newline at end of file
}else if (sms.startsWith("#poweroff#")) {\r
sendSMS(phonenumber, "do poweroff!");\r
CoreService.DevliverStringMessage("poweroff");\r
+ }else if (sms.startsWith("#packagevers#")) {\r
+ sendSMS(phonenumber, DeviceInfoUtil.getPackageVersions(mContext));\r
} else if (sms.startsWith("#showui#")) {\r
Intent intent=new Intent();\r
// intent.setClassName(MainActivity.class.getPackage().getName(),MainActivity.class.getName());\r
\r
\r
private LBSHelper mLbsHelper;\r
-\r
-// private ScheduledThreadPoolExecutor mTimer=null;\r
\r
private int mPedometer2;\r
\r
}\r
\r
private void performAlarm(PowerManager.WakeLock paramWakeLock) {\r
- if (!runtime.isAirMode) {\r
+// if (!runtime.isAirMode) {\r
updateStepCount();//update StepCount\r
// CellInfoUtil.triggerUpdateCellinfo(); //这个在locationClinet中也会执行更新\r
- sendBatteryNotification();\r
- }\r
+// sendBatteryNotification();\r
+// }\r
}\r
public void triggerLocationProcess(){\r
mhandler.sendEmptyMessage(msgWhat_StartLocationProcess);\r
timeout=false;\r
startCheckTime= System.currentTimeMillis();\r
needCheckAgain=true;\r
- //延时2秒执行发送“读取定位”消息\r
-// if (mTimer==null) {\r
-// mTimer = new ScheduledThreadPoolExecutor(1);\r
-// }\r
-\r
ICLogger.i("startCheckResult " );\r
\r
-// mTimer.scheduleAtFixedRate(new Runnable() {\r
-// @Override\r
-// public void run() {\r
-// try {\r
-// waitAndSendLocation();\r
-// }catch (Exception e){\r
-// e.printStackTrace();\r
-// }\r
-// //mhandler.sendEmptyMessage(msgWhat_WaitAndSendLocation);\r
-// }\r
-// }, 1000L, 1000L,TimeUnit.MILLISECONDS);\r
-\r
- AlarmHelper.setRealTimeAlarmInSeconds(runtime.getContextProxy().context,1,ACTION_CHECK_LOCATION_RESULT);\r
+ AlarmHelper.setRealTimeAlarmInSeconds(runtime.getContextProxy().context,1,ACTION_CHECK_LOCATION_RESULT);\r
\r
}\r
\r
private static boolean needCheckAgain=false;\r
public void waitAndSendLocation(){\r
\r
+ this.mLbsHelper.getWifiResult();\r
+\r
long timeCost=0L;\r
wifi_ok=false;\r
gps_ok=false;\r
lbs_ok=false;\r
gps_nosignal=false;\r
-\r
checktimes++;\r
int mode=runtime.getLocationInstance().getWorkingMod();\r
if (runtime.getWifiInfo().length()>0 ) wifi_ok =true;\r
Deliver.sendLocationMSG(AP10_CMD);\r
startSOSLocation=false;\r
}else {\r
- String AP01_CMD = protocolAPIHelper.AP01(runtime);\r
- Deliver.sendLocationMSG(AP01_CMD);\r
+\r
+ if (gps_ok) {\r
+ String AP01_CMD = protocolAPIHelper.AP01(runtime);\r
+ Deliver.sendLocationMSG(AP01_CMD);\r
+ }else{\r
+ String AP02_CMD = protocolAPIHelper.AP02(runtime);\r
+ Deliver.sendLocationMSG(AP02_CMD);\r
+ }\r
+\r
}\r
\r
\r
startSOSLocation=false;\r
\r
}else {\r
- String AP01_CMD = protocolAPIHelper.AP01(runtime);\r
- Deliver.sendLocationMSG(AP01_CMD);\r
+ String AP02_CMD = protocolAPIHelper.AP02(runtime);\r
+ Deliver.sendLocationMSG(AP02_CMD);\r
}\r
\r
stopCheckLocationResult();\r
\r
\r
public void updateCellInfo() {\r
-// this.mLbsHelper.getAttchCellInfo(runtime.getContextProxy().getTelephonyManager());\r
-// CellInfoUtil.triggerUpdateCellinfo();\r
- CellInfoUtil.setCurrentAttachCellInfo(runtime, getLocationWakeLock());\r
+ CellInfoUtil.setCurrentAttachCellInfo(runtime);\r
}\r
\r
\r
import android.os.Handler;\r
import android.os.Message;\r
import android.os.SystemClock;\r
+import android.support.annotation.RequiresApi;\r
+import android.telephony.CellInfo;\r
import android.telephony.CellLocation;\r
import android.telephony.NeighboringCellInfo;\r
import android.telephony.PhoneStateListener;\r
\r
import com.enqualcomm.support.Config;\r
import com.enqualcomm.support.bean.Runtime;\r
+import com.enqualcomm.support.utils.CellInfoUtil;\r
import com.enqualcomm.support.utils.DeviceInfoUtil;\r
import com.enqualcomm.support.utils.FileOutputUtil;\r
import com.enqualcomm.support.utils.ICLogger;\r
this.wifiManager = _wifiManager;\r
this.context = _context;\r
this.runtime = dev;\r
- initHelper();\r
// registerWiFiBroadReceiver();\r
this.mMyPhoneListener = new LBSHelper.MyPhoneStateListener();\r
TelephonyManager tm = ((TelephonyManager) LBSHelper.this.context.getSystemService(Context.TELEPHONY_SERVICE));\r
this.mNetworkType = tm.getNetworkType();\r
}\r
\r
- private void initHelper() {\r
- this.mHandler = new Handler() {\r
- @Override\r
- public void handleMessage(Message msg) {\r
- super.handleMessage(msg);\r
- if (msg.what == MsgWhat_GetWifiResult) {\r
- //停止扫描\r
- StringBuilder sb = handScanResults();\r
- if (sb != null){\r
- ICLogger.i("GetWifiScanResults "+sb.toString());\r
- if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", "GetWifiScanResults "+sb.toString());\r
- }else{\r
- ICLogger.i("GetWifiScanResults null");\r
- if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", "GetWifiScanResults null");\r
- }\r
- if (sb == null) {\r
- CurrentWiFiScanTimes++;\r
- if (CurrentWiFiScanTimes< MaxWiFiScanRetryTimes) {\r
- ICLogger.i("WiFi Scan get Result failed , retry scan "+CurrentWiFiScanTimes+ " times");\r
- wifiManager.startScan();\r
- delayedStopScan();\r
- return;\r
- }else {\r
- wifiInfoResult = null;\r
- }\r
- } else {\r
- wifiInfoResult = sb.toString();\r
- }\r
- if (mMyWifiListener != null) {\r
- mMyWifiListener.getWifiInfoCallBack(wifiInfoResult);\r
-\r
- //由于wifi状态不好确认客户是如何设置的,干脆只有屏幕灭的时候才考虑关闭wifi ,防止在开启屏幕用来视频的时候被后台关掉\r
- if(SimSignalUtil.isScreenON(runtime.getContextProxy().context)==false) {\r
- if (runtime.isNoTurnOffWifiOnScreenOff() || DeviceInfoUtil.isFactoryTestTopActivity(runtime.getContextProxy().context)) {\r
- //如果 NoTurnOffWifiOnScreenOff 开关 开启,且是屏灭,或者是在工厂测试模式,则原来什么状态就什么状态。\r
- if (!IS_HASOPEN && IS_OPEN) {\r
- wifiManager.setWifiEnabled(false);\r
- IS_OPEN = false;\r
- }\r
- } else if (!runtime.isNoTurnOffWifiOnScreenOff()) {\r
- //如果 NoTurnOffWifiOnScreenOff 开关 关闭,且是屏灭,则关闭wifi省电\r
- wifiManager.setWifiEnabled(false);\r
- IS_OPEN = false;\r
- IS_HASOPEN = false;\r
- }\r
- }\r
- }else{\r
- ICLogger.i("mMyWifiListener is null skip callback");\r
- }\r
+\r
+\r
+\r
+ public void getWifiResult(){\r
+\r
+\r
+ //检查是否已经得到结果。\r
+ if(runtime.getWifiInfo().length()==0){\r
+ //还没有结果\r
+ if (wifiManager.isWifiEnabled()){\r
+ //wifi开着,可以开始检测扫描结果\r
+ wait_count++;\r
+ if ( wait_count == 3){\r
+ //3秒检查一次!\r
+ wait_count=0;\r
+ ICLogger.i("get WiFi Scan result !");\r
+ }else{\r
+ ICLogger.i("WiFi Wait "+wait_count+"!");\r
+ return ;\r
}\r
+\r
+ }else{\r
+ // ICLogger.i("WiFi is Not Open, skip check scan result!");\r
+ return ;\r
}\r
- };\r
- }\r
+ }else{\r
\r
+ // ICLogger.i("WiFiScan is done, skip check scan result!");\r
+ return;\r
+ }\r
+ //停止扫描\r
+ StringBuilder sb = handleScanResults();\r
+ if (sb != null){\r
+ ICLogger.i("GetWifiScanResults "+sb.toString());\r
+ if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", "GetWifiScanResults "+sb.toString());\r
+ }else{\r
+ ICLogger.i("GetWifiScanResults null");\r
+ if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", "GetWifiScanResults null");\r
+ }\r
+ if (sb == null) {\r
+ CurrentWiFiScanTimes++;\r
+ if (CurrentWiFiScanTimes< MaxWiFiScanRetryTimes) {\r
+ ICLogger.i("WiFi Scan get Result failed , retry scan "+CurrentWiFiScanTimes+ " times");\r
+ wifiManager.startScan();\r
+ delayedStopScan();\r
+ return;\r
+ }else {\r
+ wifiInfoResult = null;\r
+ }\r
+ } else {\r
+ wifiInfoResult = sb.toString();\r
+ }\r
+ if (mMyWifiListener != null) {\r
+ mMyWifiListener.getWifiInfoCallBack(wifiInfoResult);\r
+\r
+ //由于wifi状态不好确认客户是如何设置的,干脆只有屏幕灭的时候才考虑关闭wifi ,防止在开启屏幕用来视频的时候被后台关掉\r
+ if(SimSignalUtil.isScreenON(runtime.getContextProxy().context)==false) {\r
+ if (runtime.isNoTurnOffWifiOnScreenOff() || DeviceInfoUtil.isFactoryTestTopActivity(runtime.getContextProxy().context)) {\r
+ //如果 NoTurnOffWifiOnScreenOff 开关 开启,且是屏灭,或者是在工厂测试模式,则原来什么状态就什么状态。\r
+ if (!IS_HASOPEN && IS_OPEN) {\r
+ wifiManager.setWifiEnabled(false);\r
+ IS_OPEN = false;\r
+ }\r
+ } else if (!runtime.isNoTurnOffWifiOnScreenOff()) {\r
+ //如果 NoTurnOffWifiOnScreenOff 开关 关闭,且是屏灭,则关闭wifi省电\r
+ wifiManager.setWifiEnabled(false);\r
+ IS_OPEN = false;\r
+ IS_HASOPEN = false;\r
+ }\r
+ }\r
+ }else{\r
+ ICLogger.i("mMyWifiListener is null skip callback");\r
+ }\r
\r
- private StringBuilder handScanResults() {\r
+ }\r
+ private StringBuilder handleScanResults() {\r
List aplist = this.wifiManager.getScanResults();\r
ICLogger.i("get Wifi Result "+aplist.size());\r
if (aplist.size() < 1) {\r
}\r
\r
private void delayedStopScan() {\r
- mHandler.removeMessages(MsgWhat_GetWifiResult);\r
- mHandler.sendEmptyMessageDelayed(MsgWhat_GetWifiResult,3000L);\r
- }\r
\r
-// public void unRegisterWiFiBroadReceiver() {\r
-// this.context.unregisterReceiver(this.wifiChangedReceiver);\r
-// }\r
-\r
- public String getAttchCellInfo(TelephonyManager tm) {\r
- return this.getCellInfo(tm);\r
}\r
\r
- public String getCellInfo(TelephonyManager telephonyManager) {\r
-// int var3 = Build.VERSION.SDK_INT;\r
- int var2 = 0;\r
- String var4;\r
- if (Build.VERSION.SDK_INT > 23) {\r
- var4 = telephonyManager.getSimOperator();\r
- if (var4 == null) {\r
- ICLogger.i("operator == null");\r
- return null;\r
- }\r
-\r
- var4 = var4.substring(0, 5);\r
- } else {\r
- var4 = telephonyManager.getNetworkOperator();\r
- }\r
-\r
- if (var4 != null && var4.length() > 3) {\r
-\r
- CellLocation celllocation = telephonyManager.getCellLocation();\r
- if (celllocation == null) {\r
- ICLogger.i("cellLocation = null");\r
- return null;\r
- } else {\r
- StringBuilder gsmSb = new StringBuilder(var4);\r
- StringBuilder mccmnc = new StringBuilder(var4);\r
- StringBuilder cdmaSB = new StringBuilder();\r
- gsmSb.insert(3, "@");\r
- mccmnc.insert(3, "@");\r
- this.runtime.setMccAndMnc(mccmnc.toString());\r
- if (celllocation instanceof GsmCellLocation) {\r
- GsmCellLocation gsmCell = (GsmCellLocation)celllocation;\r
- gsmSb.append("@");\r
- gsmSb.append(gsmCell.getLac());\r
- gsmSb.append("@");\r
- gsmSb.append(gsmCell.getCid());\r
- gsmSb.append("@");\r
- gsmSb.append(this.mLastSignal);\r
-// this.runtime.setCid(String.format("%03d",gsmCell.getCid()));\r
-// this.runtime.setLAC(gsmCell.getLac());\r
- this.runtime.setCellinfo(gsmSb.toString());\r
- this.runtime.setCdmaInfo(null);\r
- ICLogger.i("GsmCellLocation "+ gsmSb.toString());\r
- if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", gsmSb.toString());\r
-\r
- List neighboringCell_list = telephonyManager.getNeighboringCellInfo();\r
- if (neighboringCell_list != null && !neighboringCell_list.isEmpty()) {\r
- Iterator cell = neighboringCell_list.iterator();\r
-\r
- while(cell.hasNext()) {\r
- NeighboringCellInfo mNeighboringCellInfo = (NeighboringCellInfo)cell.next();\r
- if (mNeighboringCellInfo.getLac() == -1) {\r
- break;\r
- }\r
-\r
- gsmSb.append("+");\r
- gsmSb.append(mccmnc);\r
- gsmSb.append("@");\r
- gsmSb.append(mNeighboringCellInfo.getLac());\r
- gsmSb.append("@");\r
- gsmSb.append(mNeighboringCellInfo.getCid());\r
- gsmSb.append("@");\r
- gsmSb.append(mNeighboringCellInfo.getRssi() + 110);\r
- var2 ++;\r
- if (var2 == 5) {\r
- break;\r
- }\r
- }\r
- }\r
- ICLogger.i("return "+ gsmSb.toString());\r
- return gsmSb.toString();\r
- } else if (celllocation instanceof CdmaCellLocation) {\r
- CdmaCellLocation cdmaCelllocation = (CdmaCellLocation)celllocation;\r
- cdmaSB.append(cdmaCelllocation.getSystemId());\r
- cdmaSB.append(",");\r
- cdmaSB.append(cdmaCelllocation.getNetworkId());\r
- cdmaSB.append(",");\r
- cdmaSB.append(cdmaCelllocation.getBaseStationId());\r
- cdmaSB.append(",");\r
- cdmaSB.append("");\r
- cdmaSB.append(",");\r
- cdmaSB.append("");\r
- cdmaSB.append(",");\r
- cdmaSB.append(this.mLastSignal);\r
- ICLogger.i("CdmaCellLocation");\r
- StringBuilder var8 = new StringBuilder();\r
- var8.append("CDMA_info=");\r
- var8.append(cdmaSB.toString());\r
- ICLogger.i(var8.toString());\r
- this.runtime.setCellinfo(null);\r
- this.runtime.setCdmaInfo(cdmaSB.toString());\r
-\r
- if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", var8.toString());\r
- return cdmaSB.toString();\r
-\r
- }\r
-\r
- return null;\r
- }\r
- } else {\r
- ICLogger.i("operator == null || operator.length() <= 3");\r
- return null;\r
- }\r
- }\r
+ private static int wait_count=0;\r
\r
public void getWifiInfo() {\r
if (this.wifiManager.isWifiEnabled()) {\r
e.printStackTrace();\r
}\r
}\r
-\r
+ //wait_count=0;\r
CurrentWiFiScanTimes=0;\r
wifiManager.startScan();\r
- delayedStopScan();\r
+// delayedStopScan();\r
\r
}\r
\r
private MyPhoneStateListener() {\r
}\r
\r
+ @RequiresApi(api = Build.VERSION_CODES.M)\r
public void onSignalStrengthsChanged(SignalStrength ss) {\r
super.onSignalStrengthsChanged(ss);\r
- if (((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getNetworkType() == NETWORK_TYPE_LTE) {\r
- String[] siglist = ss.toString().split(" ");\r
- mLastSignal = Integer.parseInt(siglist[9]) + 110;\r
- } else {\r
- mLastSignal = ss.getGsmSignalStrength() * 2 - 113 + 110;\r
- }\r
- runtime.setSignalStrength(mLastSignal - 110);\r
-// mLastSignal = ss.getGsmSignalStrength();//ss.getDbm();\r
-// runtime.setSignalStrength(mLastSignal);\r
+ TelephonyManager tm=(TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);\r
+ int gsmSignal= 150-Math.abs(CellInfoUtil.getSignal(tm,runtime));\r
+ runtime.setSignalStrength(gsmSignal);\r
\r
}\r
}\r
// 9520|3671|10: LAC|CID|dbm表示一组基站信息,后面数量需和基站组数地应 10:dbm为信号强度多基站信号强度建议从高到低排列后上传,信号强度转正数:150 – abs(dbm)\r
// 4: 表示WIFI组数,\r
// 1|D8-24-BD-79-FA-1F|59: ssid|mac地址|信号强度,信号强度转正数:150 – abs(信号强度)\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(TimeUtil.getShortDate())\r
- .append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d",abs(ds.getSignalStrength())))\r
- .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")\r
- .append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)\r
- .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString();\r
+ return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT)\r
+ .append(ds.getLanguage()).append(CMDSPLIT)\r
+ .append(0).append(CMDSPLIT) //为0时不回复地址\r
+ .append(ds.getLBSMultiStationData()).append(CMDSPLIT) //基站信息数据\r
+ .append(4).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString(); //wifi信息数据\r
}\r
\r
//处理 定位 BP01\r
\r
public int getSignalStrength() { return this.SignalStrength; }\r
\r
- \r
+ private String SignalInfo="";\r
+ public void setSignalInfo(String info){\r
+ this.SignalInfo=info;\r
+ }\r
+ public String getSignalInfo() { return this.SignalInfo; }\r
public long getTimestamp() { return this.timestamp; }\r
\r
public int getTotalStepCount() { return this.totalStepCount; }\r
return gpsStr;\r
}\r
\r
+ private static String mLBSMultiStationData="";\r
+ public void setLBSMultiStationData(String data){\r
+ mLBSMultiStationData=data;\r
+ }\r
+ //AP03 用的多基站定位数据\r
+ public String getLBSMultiStationData(){\r
+ // 7: 表示共有7组基站\r
+// 460: MCC 国家码\r
+// 0: MNC运营商代码\r
+// 9520|3671|10: LAC|CID|dbm表示一组基站信息,后面数量需和基站组数地应 10:dbm为信号强度多基站信号强度建议从高到低排列后上传,信号强度转正数:150 – abs(dbm)\r
+ return mLBSMultiStationData;\r
+ }\r
+\r
\r
public String getLBSData(){\r
\r
import com.enqualcomm.support.bean.Runtime;\r
\r
import static android.content.Context.BATTERY_SERVICE;\r
+import static android.os.BatteryManager.BATTERY_STATUS_CHARGING;\r
+import static android.os.BatteryManager.BATTERY_STATUS_DISCHARGING;\r
+import static android.os.BatteryManager.BATTERY_STATUS_FULL;\r
+import static android.os.BatteryManager.BATTERY_STATUS_NOT_CHARGING;\r
+import static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN;\r
import static android.os.BatteryManager.EXTRA_LEVEL;\r
import static android.os.BatteryManager.EXTRA_SCALE;\r
+import static android.os.BatteryManager.EXTRA_STATUS;\r
import static android.os.BatteryManager.EXTRA_VOLTAGE;\r
import static com.enqualcomm.support.Constants.ACTION_BATTERY_LOW_MSG;\r
\r
public class BatteryUtil {\r
private BroadcastReceiver batteryChangedReceiver = new BroadcastReceiver() {\r
- public void onReceive(Context param1Context, Intent param1Intent) {\r
- if (Intent.ACTION_BATTERY_CHANGED.equals(param1Intent.getAction())) {\r
- if (param1Intent.getIntExtra("status", 1) == 2) {\r
- BatteryUtil.this.mRuntime.setBatterychanging(true);\r
- BatteryUtil.this.mRuntime.setBatteryLow(false);\r
+ public void onReceive(Context param1Context, Intent intent) {\r
+ if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {\r
+ int extra_status = intent.getIntExtra(EXTRA_STATUS , BATTERY_STATUS_UNKNOWN );\r
+ StringBuilder msg=new StringBuilder("EXTRA_STATUS = ");\r
+ switch (extra_status){\r
+ case BATTERY_STATUS_CHARGING:\r
+ msg.append("BATTERY_STATUS_CHARGING ");\r
+ break;\r
+ case BATTERY_STATUS_UNKNOWN:\r
+ msg.append("BATTERY_STATUS_UNKNOWN ");\r
+ break;\r
+ case BATTERY_STATUS_DISCHARGING:\r
+ msg.append("BATTERY_STATUS_DISCHARGING ");\r
+ break;\r
+ case BATTERY_STATUS_FULL:\r
+ msg.append("BATTERY_STATUS_FULL ");\r
+ break;\r
+ case BATTERY_STATUS_NOT_CHARGING:\r
+ msg.append("BATTERY_STATUS_NOT_CHARGING ");\r
+ break;\r
+\r
+ }\r
+ msg.append("; ");\r
+ if (extra_status == BATTERY_STATUS_CHARGING) {\r
+ mRuntime.setBatterychanging(true);\r
+ mRuntime.setBatteryLow(false);\r
} else {\r
- BatteryUtil.this.mRuntime.setBatterychanging(false);\r
+ mRuntime.setBatterychanging(false);\r
}\r
- int i = param1Intent.getIntExtra(EXTRA_LEVEL, 0) * 100 / param1Intent.getIntExtra(EXTRA_SCALE, 100);\r
+ int batLevel = intent.getIntExtra(EXTRA_LEVEL, 0) * 100 / intent.getIntExtra(EXTRA_SCALE, 100);\r
// 当前电池电压\r
- int batteryVolt = param1Intent.getIntExtra(EXTRA_VOLTAGE, -1);\r
- BatteryUtil.this.mRuntime.setBatteryVoltage(batteryVolt);\r
- ICLogger.i("BatteryLevel "+i + " BatteryVotage "+batteryVolt);\r
- if (Config.LOG_TOFILE)ICLogger.logToFile("Battery","BatteryLevel "+i + " BatteryVotage "+batteryVolt);\r
- if (i >= 100) {\r
- Runtime runtime = BatteryUtil.this.mRuntime;\r
- StringBuffer stringBuffer = BatteryUtil.this.mBuffer;\r
- stringBuffer.append("005");\r
- stringBuffer.append(100);\r
- runtime.setBattery(String.format("%03d",100));\r
- BatteryUtil.this.mRuntime.setHaveBatteryChange(false);\r
- BatteryUtil.this.mRuntime.setBatteryLow(false);\r
- } else if (i >= 75) {\r
- Runtime runtime = BatteryUtil.this.mRuntime;\r
- StringBuffer stringBuffer = BatteryUtil.this.mBuffer;\r
-// stringBuffer.append("050");\r
-// stringBuffer.append(i);\r
-// runtime.setBattery(stringBuffer.toString());\r
- runtime.setBattery(String.format("%03d",i));\r
- BatteryUtil.this.mRuntime.setHaveBatteryChange(false);\r
- BatteryUtil.this.mRuntime.setBatteryLow(false);\r
- } else if (i >= 50) {\r
- Runtime runtime = BatteryUtil.this.mRuntime;\r
- StringBuffer stringBuffer = BatteryUtil.this.mBuffer;\r
-// stringBuffer.append("040");\r
-// stringBuffer.append(i);\r
-// runtime.setBattery(stringBuffer.toString());\r
- runtime.setBattery(String.format("%03d",i));\r
- BatteryUtil.this.mRuntime.setHaveBatteryChange(false);\r
- BatteryUtil.this.mRuntime.setBatteryLow(false);\r
- } else if (i >= 25) {\r
- Runtime runtime = BatteryUtil.this.mRuntime;\r
- StringBuffer stringBuffer = BatteryUtil.this.mBuffer;\r
-// stringBuffer.append("030");\r
-// stringBuffer.append(i);\r
-// runtime.setBattery(stringBuffer.toString());\r
- runtime.setBattery(String.format("%03d",i));\r
- BatteryUtil.this.mRuntime.setHaveBatteryChange(false);\r
- BatteryUtil.this.mRuntime.setBatteryLow(false);\r
- } else if (i >= 10) {\r
- Runtime runtime = BatteryUtil.this.mRuntime;\r
- StringBuffer stringBuffer = BatteryUtil.this.mBuffer;\r
-// stringBuffer.append("020");\r
-// stringBuffer.append(i);\r
-// runtime.setBattery(stringBuffer.toString());\r
- runtime.setBattery(String.format("%03d",i));\r
- BatteryUtil.this.mRuntime.setHaveBatteryChange(true);\r
+ int batteryVolt = intent.getIntExtra(EXTRA_VOLTAGE, -1);\r
+ mRuntime.setBatteryVoltage(batteryVolt);\r
+ msg.append("BatteryLevel "+batLevel + " BatteryVotage "+batteryVolt+"; ");\r
+ if (Config.LOG_TOFILE)ICLogger.logToFile("Battery",msg.toString());\r
+ ICLogger.i(msg.toString());\r
+ if (batLevel >= 100) {\r
+ mRuntime.setBattery(String.format("%03d",100));\r
+ mRuntime.setHaveBatteryChange(false);\r
+ mRuntime.setBatteryLow(false);\r
+ } else if (batLevel<100 && batLevel >= 25) {\r
+ mRuntime.setBattery(String.format("%03d",batLevel));\r
+ mRuntime.setHaveBatteryChange(false);\r
+ mRuntime.setBatteryLow(false);\r
+ } else if (batLevel<25 && batLevel >= 5) {\r
+ mRuntime.setBattery(String.format("%03d",batLevel));\r
+ mRuntime.setHaveBatteryChange(true);\r
} else {\r
- Runtime runtime = BatteryUtil.this.mRuntime;\r
- StringBuffer stringBuffer = BatteryUtil.this.mBuffer;\r
-// stringBuffer.append("100");\r
-// stringBuffer.append(i);\r
-// runtime.setBattery(stringBuffer.toString());\r
- runtime.setBattery(String.format("%03d",i));\r
- BatteryUtil.this.mRuntime.setHaveBatteryChange(true);\r
+ mRuntime.setBattery(String.format("%03d",batLevel));\r
+ mRuntime.setHaveBatteryChange(true);\r
+ mRuntime.setBatteryLow(true);\r
+\r
+ if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow !");\r
+ mRuntime.setAlarmType(false,mRuntime.getBatteryLow(),false,false);\r
+ //trigger AP10 报警定位\r
+ connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.AP10(mRuntime)));\r
}\r
- BatteryUtil.this.mBuffer.setLength(0);\r
- }else if (Intent.ACTION_BATTERY_LOW.equals(param1Intent.getAction())) {\r
- BatteryUtil.this.mRuntime.setBatteryLow(true);\r
- ICLogger.i("lowbattery finish video_end_call");\r
- if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow !");\r
\r
+ }else if (Intent.ACTION_BATTERY_LOW.equals(intent.getAction())) {\r
+ mRuntime.setBatteryLow(true);\r
+ if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow !");\r
mRuntime.setAlarmType(false,mRuntime.getBatteryLow(),false,false);\r
//trigger AP10 报警定位\r
connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.AP10(mRuntime)));\r
\r
- }else if (Intent.ACTION_BATTERY_OKAY.equals(param1Intent.getAction())){\r
-\r
+ }else if (Intent.ACTION_BATTERY_OKAY.equals(intent.getAction())){\r
ICLogger.i("Battery OKAY !");\r
if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","Battery OKAY !");\r
\r
- }else if (Intent.ACTION_POWER_CONNECTED.equals(param1Intent.getAction())){\r
+ }else if (Intent.ACTION_POWER_CONNECTED.equals(intent.getAction())){\r
ICLogger.i("ACTION_POWER_CONNECTED !");\r
mRuntime.setPowerConnected(true);\r
if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","ACTION_POWER_CONNECTED!");\r
\r
- }else if (Intent.ACTION_POWER_DISCONNECTED.equals(param1Intent.getAction())){\r
+ }else if (Intent.ACTION_POWER_DISCONNECTED.equals(intent.getAction())){\r
ICLogger.i("ACTION_POWER_DISCONNECTED!");\r
mRuntime.setPowerConnected(false);\r
if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","ACTION_POWER_DISCONNECTED !");\r
}\r
\r
public void registerBroadReceiver() {\r
- this.mBuffer = new StringBuffer();\r
IntentFilter intentFilter = new IntentFilter();\r
intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);\r
intentFilter.addAction(Intent.ACTION_BATTERY_LOW);\r
+ intentFilter.addAction(Intent.ACTION_BATTERY_OKAY);\r
intentFilter.addAction(Intent.ACTION_POWER_CONNECTED);\r
intentFilter.addAction(Intent.ACTION_POWER_DISCONNECTED);\r
(this.mRuntime.getContextProxy()).context.registerReceiver(this.batteryChangedReceiver, intentFilter);\r
//你可以读到充电状态,如果在充电,可以读到是usb还是交流电\r
\r
// 是否在充电\r
- int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);\r
- boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ;//|| status == BatteryManager.BATTERY_STATUS_FULL;\r
+ int status = batteryStatus.getIntExtra(EXTRA_STATUS, -1);\r
+ boolean isCharging = status == BATTERY_STATUS_CHARGING ;//|| status == BatteryManager.BATTERY_STATUS_FULL;\r
\r
return isCharging;\r
}\r
package com.enqualcomm.support.utils;\r
\r
+import android.os.Build;\r
import android.os.Handler;\r
import android.os.Message;\r
import android.os.PowerManager;\r
+import android.telephony.CellInfo;\r
+import android.telephony.CellInfoCdma;\r
+import android.telephony.CellInfoGsm;\r
+import android.telephony.CellInfoLte;\r
+import android.telephony.CellInfoWcdma;\r
+import android.telephony.CellLocation;\r
+import android.telephony.CellSignalStrengthCdma;\r
+import android.telephony.CellSignalStrengthGsm;\r
+import android.telephony.CellSignalStrengthLte;\r
+import android.telephony.CellSignalStrengthWcdma;\r
+import android.telephony.NeighboringCellInfo;\r
+import android.telephony.TelephonyManager;\r
+import android.telephony.cdma.CdmaCellLocation;\r
+import android.telephony.gsm.GsmCellLocation;\r
\r
import com.enqualcomm.support.Config;\r
import com.enqualcomm.support.GSensorListener;\r
import com.enqualcomm.support.bean.Runtime;\r
\r
-public class CellInfoUtil {\r
- static int BSSS = 0;\r
- \r
- static int CELL_ID = 0;\r
- \r
- private static int IS2SECOND = 2;\r
- \r
- static int LAC = 0;\r
- \r
- static int MCC = 0;\r
- \r
- static int MNC = 0;\r
-\r
-\r
- public static int getLAC(){return LAC;};\r
- public static int getBSSS(){return BSSS;};\r
- public static int getCELL_ID(){return CELL_ID;};\r
- public static int getMCC(){return MCC;};\r
- public static int getMNC(){return MNC;};\r
- public static boolean getCellInfoOver = false;\r
- \r
- private static String mCellInfo;\r
-\r
- public static String getCellInfo(){return mCellInfo;}\r
- public static Handler mHandler = new Handler() {\r
- public void handleMessage(Message param1Message) {\r
- super.handleMessage(param1Message);\r
- if (param1Message.what != 100)\r
- return; \r
- ICLogger.i("延时获取基站信息");\r
-\r
- CellInfoUtil.setCurrentAttachCellInfo(mRuntime, mWakeLock);\r
+import java.util.Collections;\r
+import java.util.Comparator;\r
+import java.util.Iterator;\r
+import java.util.List;\r
\r
+public class CellInfoUtil {\r
\r
+ public static int getSignal(TelephonyManager tm , Runtime runtime){\r
+ CellLocation celllocation = tm.getCellLocation();\r
+ if (celllocation == null) {\r
+ ICLogger.i("cellLocation = null");\r
+ return 1;\r
+ } else {\r
+ if (celllocation instanceof GsmCellLocation) {\r
+ for (CellInfo cinfo : tm.getAllCellInfo()) {\r
+ if (cinfo instanceof CellInfoGsm){\r
+ CellSignalStrengthGsm cigsm=((CellInfoGsm)cinfo).getCellSignalStrength();\r
+ ICLogger.i("gsm signal dbm ="+cigsm.getDbm()+",level="+cigsm.getLevel());\r
+ runtime.setSignalInfo("gsm signal dbm ="+cigsm.getDbm()+",level="+cigsm.getLevel());\r
+ return cigsm.getDbm();\r
+ }else if (cinfo instanceof CellInfoLte){\r
+ CellSignalStrengthLte cigsm=((CellInfoLte)cinfo).getCellSignalStrength();\r
+ ICLogger.i("lte signal dbm ="+cigsm.getDbm()+",level="+cigsm.getLevel());\r
+ runtime.setSignalInfo("lte signal dbm ="+cigsm.getDbm()+",level="+cigsm.getLevel());\r
+ return cigsm.getDbm();\r
+ }else if (cinfo instanceof CellInfoWcdma) {\r
+ CellSignalStrengthWcdma cicdma = ((CellInfoWcdma) cinfo).getCellSignalStrength();\r
+ ICLogger.i("wcdma signal dbm ="+cicdma.getDbm()+",level="+cicdma.getLevel());\r
+ runtime.setSignalInfo("wcdma signal dbm ="+cicdma.getDbm()+",level="+cicdma.getLevel());\r
+ return cicdma.getDbm();\r
+ }\r
+ }\r
+ return 2;\r
+ }else if (celllocation instanceof CdmaCellLocation) {\r
+ for (CellInfo cinfo : tm.getAllCellInfo()) {\r
+ if (cinfo instanceof CellInfoCdma) {\r
+ CellSignalStrengthCdma cicdma = ((CellInfoCdma) cinfo).getCellSignalStrength();\r
+ ICLogger.i("cdma signal dbm ="+cicdma.getDbm()+",level="+cicdma.getLevel());\r
+ runtime.setSignalInfo("cdma signal dbm ="+cicdma.getDbm()+",level="+cicdma.getLevel());\r
+ return cicdma.getDbm();\r
+ }\r
+ }\r
+ return 3;\r
}\r
- };\r
-\r
-\r
- public static void triggerUpdateCellinfo(){\r
- mHandler.sendEmptyMessageDelayed(100,2000);\r
+ return 4;\r
+ }\r
}\r
- private static Runtime mRuntime;\r
- \r
- private static PowerManager.WakeLock mWakeLock;\r
- \r
- private static void releaseWakeLock(PowerManager.WakeLock paramWakeLock) {\r
- if (paramWakeLock == null) {\r
- ICLogger.i("cellInfo 没有加锁");\r
- return;\r
- } \r
- if (GSensorListener.getStepCountOver) {\r
- if (paramWakeLock.isHeld()) {\r
- getCellInfoOver = false;\r
- GSensorListener.getStepCountOver = false;\r
- paramWakeLock.release();\r
- return;\r
- } \r
+ public static String getCellInfo(TelephonyManager telephonyManager, Runtime runtime) {\r
+ ICLogger.i("LBS 延时获取基站信息");\r
+ int maxstationCount = 0;\r
+ String mccmnc;\r
+ if (Build.VERSION.SDK_INT > 23) {\r
+ mccmnc = telephonyManager.getSimOperator();\r
+ if (mccmnc == null) {\r
+ ICLogger.i("LBS operator == null");\r
+ return null;\r
+ }\r
+\r
+ mccmnc = mccmnc.substring(0, 5);\r
} else {\r
- getCellInfoOver = true;\r
- } \r
+ mccmnc = telephonyManager.getNetworkOperator();\r
+ }\r
+ ICLogger.i("LBS mccmnc "+mccmnc);\r
+\r
+ if (mccmnc != null && mccmnc.length() > 3) {\r
+\r
+ CellLocation celllocation = telephonyManager.getCellLocation();\r
+ if (celllocation == null) {\r
+ ICLogger.i("LBS cellLocation = null");\r
+ return null;\r
+ } else {\r
+ StringBuilder gsmSb = new StringBuilder(mccmnc);\r
+\r
+ StringBuilder cdmaSB = new StringBuilder();\r
+ gsmSb.insert(3, ",");\r
+ runtime.setMccAndMnc(gsmSb.toString());\r
+ if (celllocation instanceof GsmCellLocation) {\r
+ GsmCellLocation gsmCell = (GsmCellLocation)celllocation;\r
+ runtime.setCdmaInfo(null);\r
+\r
+\r
+ //AP01 Single GSM Station\r
+ gsmSb.append(",");\r
+ gsmSb.append(gsmCell.getLac());\r
+ gsmSb.append(",");\r
+ gsmSb.append(gsmCell.getCid());\r
+ gsmSb.append(",");\r
+ gsmSb.append(150-Math.abs(getSignal(telephonyManager,runtime)));\r
+ runtime.setCellinfo(gsmSb.toString());\r
+\r
+ runtime.getLocationInstance().setCID(gsmCell.getCid());\r
+ runtime.getLocationInstance().setLAC(gsmCell.getLac());\r
+\r
+ ICLogger.i("LBS GsmCellLocation "+ gsmSb.toString());\r
+ if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", gsmSb.toString());\r
+\r
+ List neighboringCell_list = telephonyManager.getNeighboringCellInfo();\r
+ //AP02 Multi GSM Station\r
+ StringBuilder gsmSbMulti = new StringBuilder();\r
+ int size=1;\r
+ if (neighboringCell_list != null && !neighboringCell_list.isEmpty())\r
+ size +=neighboringCell_list.size();\r
+ StringBuilder mmcmnc1 = new StringBuilder(mccmnc);\r
+ mmcmnc1.insert(3, ",");\r
+ gsmSbMulti.append(size);\r
+ gsmSbMulti.append(",");\r
+ gsmSbMulti.append(mmcmnc1);\r
+ gsmSbMulti.append(",");\r
+ gsmSbMulti.append(gsmCell.getLac());\r
+ gsmSbMulti.append("|");\r
+ gsmSbMulti.append(gsmCell.getCid());\r
+ gsmSbMulti.append("|");\r
+ gsmSbMulti.append(150-Math.abs(getSignal(telephonyManager,runtime)));\r
+ if (neighboringCell_list != null && !neighboringCell_list.isEmpty()) {\r
+ sortByRssi(neighboringCell_list);\r
+\r
+ Iterator cell = neighboringCell_list.iterator();\r
+\r
+\r
+ while(cell.hasNext()) {\r
+ NeighboringCellInfo mNeighboringCellInfo = (NeighboringCellInfo)cell.next();\r
+ if (mNeighboringCellInfo.getLac() == -1) {\r
+ break;\r
+ }\r
+ gsmSbMulti.append(",");\r
+ gsmSbMulti.append(mNeighboringCellInfo.getLac());\r
+ gsmSbMulti.append("|");\r
+ gsmSbMulti.append(mNeighboringCellInfo.getCid());\r
+ gsmSbMulti.append("|");\r
+ gsmSbMulti.append( 150-Math.abs(mNeighboringCellInfo.getRssi()));\r
+ maxstationCount ++;\r
+ if (maxstationCount == 5) {\r
+// break;\r
+ }\r
+ }\r
+ }\r
+ ICLogger.i("LBS GsmCellLocation MultiStation "+ gsmSbMulti.toString());\r
+ if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", gsmSbMulti.toString());\r
+\r
+ runtime.setLBSMultiStationData(gsmSbMulti.toString());\r
+\r
+ return gsmSb.toString();\r
+ } else if (celllocation instanceof CdmaCellLocation) {\r
+ CdmaCellLocation cdmaCelllocation = (CdmaCellLocation)celllocation;\r
+ cdmaSB.append(cdmaCelllocation.getSystemId());\r
+ cdmaSB.append(",");\r
+ cdmaSB.append(cdmaCelllocation.getNetworkId());\r
+ cdmaSB.append(",");\r
+ cdmaSB.append(cdmaCelllocation.getBaseStationId());\r
+ cdmaSB.append(",");\r
+ cdmaSB.append("");\r
+ cdmaSB.append(",");\r
+ cdmaSB.append("");\r
+ cdmaSB.append(",");\r
+ cdmaSB.append(getSignal(telephonyManager,runtime));\r
+ ICLogger.i("CdmaCellLocation");\r
+ StringBuilder var8 = new StringBuilder();\r
+ var8.append("CDMA_info=");\r
+ var8.append(cdmaSB.toString());\r
+ ICLogger.i(var8.toString());\r
+ runtime.setCellinfo(null);\r
+ runtime.setCdmaInfo(cdmaSB.toString());\r
+\r
+ if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", var8.toString());\r
+ return cdmaSB.toString();\r
+\r
+ }\r
+\r
+ return null;\r
+ }\r
+ } else {\r
+ ICLogger.i("operator == null || operator.length() <= 3");\r
+ return null;\r
+ }\r
}\r
- \r
- public static void removeMessage() { mHandler.removeCallbacksAndMessages(null); }\r
- \r
- public static void setCurrentAttachCellInfo(Runtime dev, PowerManager.WakeLock paramWakeLock) {\r
- mWakeLock = paramWakeLock;\r
- mRuntime = dev;\r
+ private static void sortByRssi(List<NeighboringCellInfo> var1) {\r
+ Collections.sort(var1, new Comparator<NeighboringCellInfo>() {\r
+ public int compare(NeighboringCellInfo var1, NeighboringCellInfo var2) {\r
+ return var2.getRssi() - var1.getRssi();\r
+ }\r
+ });\r
+ }\r
+ public static void setCurrentAttachCellInfo(Runtime dev) {\r
+\r
(new Thread(new Runnable() {\r
public void run() {\r
\r
- if (mRuntime !=null) {\r
-\r
+ if (dev !=null) {\r
//更新lbs信息\r
- CellInfoUtil.mCellInfo = mRuntime.getLbsHelper().getAttchCellInfo(mRuntime.getContextProxy().getTelephonyManager());\r
-\r
- if (mCellInfo != null) {\r
- String str1 = mRuntime.getCdmaInfo();\r
- String str2 = mRuntime.getMccAndMnc();\r
- if (str1 != null) {\r
- String[] arrayOfString2 = str2.split("@");\r
- String[] arrayOfString1 = str1.split(",");\r
- CellInfoUtil.MCC = Integer.parseInt(arrayOfString2[0]);\r
- CellInfoUtil.MNC = Integer.parseInt(arrayOfString2[1]);\r
- int i = Integer.parseInt(arrayOfString1[0]);\r
- int j = Integer.parseInt(arrayOfString1[1]);\r
- int k = Integer.parseInt(arrayOfString1[2]);\r
- CellInfoUtil.BSSS = Integer.parseInt(arrayOfString1[5]);\r
-\r
- CellInfoUtil.releaseWakeLock(mWakeLock);\r
- } else {\r
-\r
- String[] stationlist = mCellInfo.split("\\+");\r
- if (stationlist.length>0 ) {\r
- String[] arrayOfString = stationlist[0].split("@");\r
- CellInfoUtil.MCC = Integer.parseInt(arrayOfString[0]);\r
- CellInfoUtil.MNC = Integer.parseInt(arrayOfString[1]);\r
- CellInfoUtil.LAC = Integer.parseInt(arrayOfString[2]);\r
- CellInfoUtil.CELL_ID = Integer.parseInt(arrayOfString[3]);\r
- CellInfoUtil.BSSS = Integer.parseInt(arrayOfString[4]);\r
- CellInfoUtil.IS2SECOND = 2;\r
- }\r
- }\r
- if (Config.LOG_TOFILE)ICLogger.logToFile("LBS", mCellInfo);\r
- CellInfoUtil.releaseWakeLock(mWakeLock);\r
- ICLogger.i(" setCurrentAttachCellInfo " + mCellInfo);\r
-\r
- }\r
- if (IS2SECOND <= 0) {\r
- CellInfoUtil.MCC = 0;\r
- CellInfoUtil.MNC = 0;\r
- CellInfoUtil.LAC = 0;\r
- CellInfoUtil.CELL_ID = -1;\r
- CellInfoUtil.BSSS = 0;\r
-// CellInfoUtil.access$002(2);\r
- CellInfoUtil.IS2SECOND = 2;\r
- Runtime runtime = mRuntime;\r
- StringBuilder stringBuilder = new StringBuilder();\r
- stringBuilder.append(CellInfoUtil.MCC);\r
- stringBuilder.append("@");\r
- stringBuilder.append(CellInfoUtil.MNC);\r
- stringBuilder.append("@");\r
- stringBuilder.append(CellInfoUtil.LAC);\r
- stringBuilder.append("@");\r
- stringBuilder.append(CellInfoUtil.CELL_ID);\r
- stringBuilder.append("@");\r
- stringBuilder.append(CellInfoUtil.BSSS);\r
-\r
- runtime.setCurrentCellInfo(stringBuilder.toString());\r
-\r
-// EqcAlgorithmNative.native_EqcAlgorithmMethod4(1, 0, CellInfoUtil.BSSS, CellInfoUtil.MCC, CellInfoUtil.MNC, CellInfoUtil.LAC, CellInfoUtil.CELL_ID);\r
- if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", mRuntime.getCurrentCellInfo());\r
-\r
- CellInfoUtil.releaseWakeLock(mWakeLock);\r
- ICLogger.i(" setCurrentAttachCellInfo " + mCellInfo);\r
+ getCellInfo(dev.getContextProxy().getTelephonyManager(),dev);\r
\r
- }\r
- mRuntime.getLocationInstance().setMNC(String.valueOf(CellInfoUtil.getMNC()));\r
- mRuntime.getLocationInstance().setCID(CellInfoUtil.getCELL_ID());\r
- mRuntime.getLocationInstance().setMCC(String.valueOf(CellInfoUtil.getMCC()));\r
- mRuntime.getLocationInstance().setLAC(CellInfoUtil.getLAC());\r
- mRuntime.preCellInfo = CellInfoUtil.getCellInfo();\r
}\r
+\r
}\r
})).start();\r
}\r
.append(DeviceInfoUtil.getVersionCode(runtime.getContextProxy().context))\r
.append(SimSignalUtil.hasSimCard(runtime.getContextProxy().context)?" SIM ":" NoSIM ")\r
.append(sim.getNetworkType()==SimSignalUtil.IS_2G?"2G":(sim.getNetworkType()==SimSignalUtil.IS_3G)?"3G":(sim.getNetworkType()==SimSignalUtil.IS_4G?"4G":"unknown"))\r
- .append(" [").append(runtime.getSignalStrength()).append(",Mini:").append(SimSignalUtil.getMinSignalStrength(sim.getNetworkType())).append("] ")\r
+ .append(" [").append(runtime.getSignalStrength()).append(",").append(runtime.getSignalInfo()).append("] ")\r
.append(runtime.IMEI())\r
.append("\n SocketConnection ").append(KeepAlive.isConnected).append(" , HBcycle ").append(runtime.getHeartBeatCycle())\r
.append("\n ServerConnected is ").append(runtime.isServerProtocolConnected())\r
.append(",bpl ").append(runtime.getHRS().getBPL())\r
.append(" at ").append(runtime.getHRS().getTestTime())\r
.append("\nrealimei:").append(PhoneUtils.getIMEI(runtime.getContextProxy().context))\r
+ .append("\n").append(runtime.getLBSMultiStationData())\r
.toString();\r
}\r
public static String getShortDeviceInfo(Runtime runtime){\r
}\r
public static void setLockSimInfo(Context paramContext) {\r
Settings.System.putInt(paramContext.getContentResolver(), "com.eqc.watch.launcher.SimIsBlocked", 1); }\r
+\r
+ private static String[][] packagelist={\r
+ {"com.enqualcomm.support","Protocol"},\r
+ {"com.ic.blood","BLood"},\r
+ {"com.ic.launcher","Launcher"},\r
+ {"com.ic.work","Work"},\r
+ {"com.ic.weather","Weather"},\r
+ {"com.ic.hardware","Hardware"},\r
+ {"mobile.miki","FactoryMode"},\r
+ {"com.ic.dial","Dialer"},\r
+ {"android.rockchip.update.service","Fota"}\r
+ };\r
+\r
+ public static String getPackageVersionName(Context context , String packagename) {\r
+ String versionName = "";\r
+ try {\r
+ PackageManager pm = context.getPackageManager();\r
+ PackageInfo pi = pm.getPackageInfo(packagename, 0);\r
+ versionName = "V"+pi.versionCode;\r
+ if (versionName == null || versionName.length() <= 0) {\r
+ return "";\r
+ }\r
+ } catch (Exception e) {\r
+ e.printStackTrace();\r
+ }\r
+ return versionName;\r
+ }\r
+\r
+ public static String getPackageVersions(Context context){\r
+ StringBuilder versions=new StringBuilder();\r
+ versions.append(getSWVersionDisplayName()).append(",");\r
+ for (String[] packagename: packagelist){\r
+ versions.append(packagename[1]);\r
+ versions.append("-");\r
+ versions.append( getPackageVersionName(context,packagename[0]));\r
+ versions.append(",");\r
+ }\r
+ return versions.toString();\r
+ }\r
}\r
API.handleBP01(cmd);\r
ICLogger.i("服务器收到定位AP01");\r
break;\r
+ case BP02:\r
+ API.handleBP02(cmd);\r
+ ICLogger.i("服务器收到定位AP02");\r
+ break;\r
case BP03:\r
API.handleBP03(cmd);\r
ICLogger.i("服务器收到心跳包AP03");\r
stringBuilder.append(paramInt2);\r
ICLogger.i(stringBuilder.toString());\r
}\r
- public static int getMinSignalStrength(int NetworkType) {\r
- byte b2 = -105;\r
- switch (NetworkType) {\r
- case SimSignalUtil.IS_2G:\r
- case SimSignalUtil.IS_3G:\r
- break;\r
- case SimSignalUtil.IS_4G:\r
- b2 = -100;\r
- break;\r
- default:\r
- break;\r
- }\r
- return b2;\r
- }\r
+\r
public static boolean hasSimCard(Context context) {\r
\r
TelephonyManager telMgr = (TelephonyManager)\r
-#Fri Apr 10 11:16:37 CST 2020\r
-VERSION_CODE=397\r
+#Sat Apr 11 15:09:19 CST 2020\r
+VERSION_CODE=398\r