1.我正在使用SD卡中的文本日志文件保存Android GPS启用和禁用时间。
我想打印多行文本,而不删除上一行数据。
下面的代码是完美打印多行,但当应用程序保持睡眠状态并重新启动时。当 GPS 打开或关闭时,打印一行以及以前的数据计数。
帮我如何修复它。
Required Output:(after Restart the app)
<< GPs Enabled At :2016/06/08 17.15.00>>
<< GPs Disabled At :2016/06/08 17.45.00>>
<< GPs Enabled At :2016/06/08 17.49.00>>
<< GPs Disabled At :2016/06/08 17.52.00>>
Getting Output:(after Restart the app)
<< GPs Enabled At :2016/06/08 17.15.00>>
<< GPs Disabled At :2016/06/08 17.45.00>>
<< GPs Enabled At :2016/06/08 17.49.00>>
<< GPs Disabled At :2016/06/08 17.52.00>>
<< GPs Disabled At :2016/06/08 17.52.00>>
<< GPs Disabled At :2016/06/08 17.52.00>>
日志文件的方法:
public void Logmethod(String NoramalStr,String Dateval)
{
/* Log FOlder Text files Starts here*/
try {
File newFolder = new File(Environment.getExternalStorageDirectory(), "GpsFolder");
if (!newFolder.exists()) {
newFolder.mkdir();
}
try {
File file = new File(newFolder, "GPSStatus" + ".txt");
file.createNewFile();
/*Writing the Log in specific files*/
BufferedWriter out;
try {
String separator1 = System.getProperty("line.separator");
FileOutputStream fOut = new FileOutputStream(new File(newFolder + "/GPSStatus.txt"), true);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
osw.append("<< " + NoramalStr +" : "+Dateval + " >>");
osw.append(separator1); // this will add new line ;
osw.flush();
osw.close();
fOut.close();
Log.i(NoramalStr," : "+Dateval);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} catch (Exception ex) {
System.out.println("ex: " + ex);
}
} catch (Exception e) {
System.out.println("e: " + e);
}
}
如果有关擦除日志文件的问题:您总是尝试检查文件是否存在createNewFile
public void Logmethod(String NoramalStr, String Dateval) {
try {
File newFolder = new File(Environment.getExternalStorageDirectory(), "GpsFolder");
boolean directoryExists = newFolder.exists();
Log.d(TAG, " directoryExists = " + directoryExists);
if (!directoryExists) {
boolean dirCreate = newFolder.mkdir();
Log.d(TAG, " dirCreate = " + dirCreate);
}
File file = new File(newFolder, "GPSStatus" + ".txt");
boolean fileExists = file.exists();
Log.d(TAG, " fileExists = " + fileExists);
if (!fileExists) {
boolean fileCreateResult = file.createNewFile();
Log.d(TAG, " fileCreateResult = " + fileCreateResult);
}
String separator1 = System.getProperty("line.separator");
FileOutputStream fOut = new FileOutputStream(new File(newFolder + "/GPSStatus.txt"), true);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
osw.append("<< ");
osw.append(NoramalStr);
osw.append(" : ");
osw.append(Dateval);
osw.append(" >>");
osw.append(separator1); // this will add new line ;
osw.flush();
osw.close();
fOut.close();
Log.i(TAG, " : " + Dateval);
} catch (Exception e) {
e.printStackTrace();
}
}
如果是关于永久侦听位置提供商启用/禁用查看 GPS 状态更改时如何接收系统广播?并在清单文件中使用接收器
<receiver android:name=".GPStStatusReceiver">
<intent-filter>
<action android:name="android.location.PROVIDERS_CHANGED" />
</intent-filter>
</receiver>
try {
File file = new File(newFolder, "GPSStatus" + ".txt");
if (!file.exists()) {
file.createNewFile();
}
然后
FileWriter writer = new FileWriter(file,true);
writer.append(response);// you want to expand
writer.flush();
writer.close();
Log.e("Suceess", "'file Write");
这可以帮助您