安卓GPS启用/禁用时间保存在SD卡内的文本文件中,具有多行



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");

这可以帮助您

最新更新