1
我正在做短信記錄。我已經獲得信息作爲數據,短信的身體等。但我也想添加GPS座標,其中SMS是從我的設備發送的,並且與傳入的SMS一樣。獲取/發送短信時如何獲取GPS座標?
我如何獲得SMS信息:
public List<String> getInboundSMSCaptured() {
EnterpriseDeviceManager edm = (EnterpriseDeviceManager) getSystemService(EnterpriseDeviceManager.ENTERPRISE_POLICY_SERVICE);
DeviceInventory deviceInventoryPolicy = edm.getDeviceInventory();
List<String> list = new ArrayList<String>();
List<String> outlist = new ArrayList<String>();
try {
deviceInventoryPolicy.enableSMSCapture(true);
// The device has likely logged some SMS messages at some point
// after
// enabling the policy.
list = deviceInventoryPolicy.getInboundSMSCaptured();
String separator = ";";
TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
// String getSimSerialNumber = telemamanger.getSimSerialNumber(); //serial
// String imei = telemamanger.getDeviceId(); // imei
String OperatorName = telemamanger.getSimOperatorName(); // operator
for (String log : list) {
String character = "$";
String newlog = log + character;
newlog = newlog.replace("\n", "").replace("\r", "");
outlist.add(newData(getPieceOfStr("TimeStamp:", " - ", log))
+ separator + "In" + separator
+ getPieceOfStr("From:", " - ", log) + separator
+ OperatorName + separator + "\ufeff"
+ getPieceOfStr("Body:", LastElement(newlog), newlog)
+ separator);
}
} catch (SecurityException e) {
Log.w(TAG, "SecurityException: " + e);
}
return outlist;
}
然後我在設備上創建CSV文件:
public void writeAllSMSs(List<String> InSMSs, List<String> OutSMSs) {
List<String> AllSMSs_list = new ArrayList<String>();
InSMSs = getInboundSMSCaptured();
OutSMSs = getOutboundSMSCaptured();
TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String imei = telemamanger.getDeviceId();
// separator for excel
String separator = ";";
AllSMSs_list = InSMSs;
AllSMSs_list.addAll(OutSMSs);
// sort from old to new calls
Collections.sort(AllSMSs_list);
// add info on top of file
AllSMSs_list.add(0, "Time" + separator + "Status" + separator
+ "SMS Number" + separator + "Operator" + separator + "Body"
+ separator + "Latitude" + separator + "Longitude");
try {
FileOutputStream fileout = openFileOutput("SMS's.csv",
MODE_MULTI_PROCESS);
OutputStreamWriter outputWriter = new OutputStreamWriter(fileout);
for (int i = 0; i < AllSMSs_list.size(); i++) {
outputWriter.write(AllSMSs_list.get(i) + "\n");
}
Collections.reverse(AllSMSs_list);
outputWriter.write("\n\nFile created: " + currentData());
outputWriter.flush();
outputWriter.close();
// display file saved message
Toast.makeText(getBaseContext(), "File saved successfully!",
Toast.LENGTH_SHORT).show();
copyFile("/data/data/com.example.samsungmdm/files/SMS's.csv",
// for android /0/ for knox /100/
"/storage/emulated/0/KNOX_Logs/"
// "/storage/emulated/100/KNOX_Logs/"
+ imei + " SMS's.csv");
} catch (Exception e) {
e.printStackTrace();
}
}
感謝
這篇文章夠用嗎? http://stackoverflow.com/questions/1513485/how-do-i-get-the-current-gps-location-programmatically-in-android – albertoiNET
@AlbertoInet謝謝。但主要問題是如何團結得到座標和SMS –
不客氣。你可以發佈一個你的短信記錄器類的碎片來嘗試實現GPS嗎? – albertoiNET