Android - Android Studio  

 

 

 

 

Text File Operation

 

 

< AndroidManifext.xml > ---------------------------------------------------------------

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.android.location_01">

 

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

 

    <application

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:roundIcon="@mipmap/ic_launcher_round"

        android:supportsRtl="true"

        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

 

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

 

 

</manifest>

 

 

< MainActivity.java > ---------------------------------------------------------------

 

package com.example.android.location_01;

import android.Manifest;

import android.content.Context;

import android.content.pm.PackageManager;

import android.os.Bundle;

import android.widget.TextView;

import android.view.View;

import android.location.Location;

import android.location.LocationManager;

import android.location.LocationListener;

import android.support.v4.app.ActivityCompat;

import android.support.v7.app.AppCompatActivity;

import android.os.Environment;

import android.util.Log;

 

import java.io.File;

import java.io.OutputStreamWriter;

import java.io.FileOutputStream;

import java.io.IOException;

 

 

public class MainActivity extends AppCompatActivity  implements LocationListener {

 

    TextView CoordList;

    String strTmp;

 

    //private final Context context;

    static final int REQUEST_LOCATION = 1;

    LocationManager locationManager;

    Location coord;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        CoordList = (TextView)findViewById(R.id.txtCoord);

        locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

 

        GetPermission();

 

        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,

                2000, 1, this);

 

    }

 

    @Override

    public void onLocationChanged(Location location) {

        UpdateLocation();

    }

 

    @Override

    public void onStatusChanged(String provider, int status, Bundle extras) {

 

    }

 

    @Override

    public void onProviderEnabled(String provider) {}

 

    @Override

    public void onProviderDisabled(String provider) {}

 

    public void UpdateLocation()

    {

 

        GetPermission();

 

        coord = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

 

        if (coord != null) {

            double lattitude = coord.getLatitude();

            double longitude = coord.getLongitude();

            CoordList.setText("Lat = " + String.format("%5.2f",lattitude) +

                              ",Long = " + String.format("%5.2f",longitude));

        } else {

            CoordList.setText("No Location data available");

        };

 

    }

 

    public void GetPermission()

    {

 

        if(ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)

                != PackageManager.PERMISSION_GRANTED &&

                ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)

                        != PackageManager.PERMISSION_GRANTED){

            ActivityCompat.requestPermissions(this,

                    new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION);

            CoordList.setText("Premission Request");

        } else {

            CoordList.setText("Already Got the Permission. So No Request");

            //CoordList.setText("");

        };

 

 

    }

 

    public void SaveLocation()

    {

 

 

        final File path =

                Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM + "/Location/") ;

 

        Log.d("INFO ", path.toString());

 

        if(!path.exists())

        {

             Log.d("INFO ", "Creating a Directory :" + path.toString());

             path.mkdirs();

 

        }

 

        final File file = new File(path, "coord.txt");

 

        Log.d("INFO ", file.toString());

 

        try

        {

            if( file.exists() == false ) {

                file.createNewFile();

                Log.d("INFO ", file.toString() + " is created ");

            };

 

            FileOutputStream fOut = new FileOutputStream(file,true);

            OutputStreamWriter fOutWriter = new OutputStreamWriter(fOut);

            fOutWriter.append( CoordList.getText() + "\n");

 

            fOutWriter.close();

 

            fOut.flush();

            fOut.close();

        }

        catch (IOException e)

        {

            Log.e("Exception", "File write failed: " + e.toString());

        }

 

 

    }

 

    public void btnUpdate_Click(View v) {

 

        UpdateLocation();

        SaveLocation();

    }

 

}

 

 

Permitting File Creation / Access

 

 

 

 

 

 

 

 

Running the App

 

 

 

Checking the Contents of the File