文档章节

android把当前时间和经纬度写入文件

henry-zhang
 henry-zhang
发布于 2015/05/21 14:24
字数 1025
阅读 14
收藏 0


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

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

              android:orientation="vertical"  

              android:layout_width="fill_parent"  

              android:layout_height="fill_parent"  

        >  

    <Button android:id="@+id/button1"  

            android:layout_width="fill_parent"  

            android:layout_height="wrap_content"  

            android:text="设置:位置与安全"/>  

    <TextView android:id="@+id/textView1"  

              android:layout_width="fill_parent"  

              android:layout_height="wrap_content"  

              android:text="MY GPS  program"  

            />  

    <TextView android:id="@+id/show_status"  

              android:layout_width="fill_parent"  

              android:layout_height="wrap_content"  

              android:text="init"/>  

  

    <TextView android:id="@+id/temp_text"  

              android:layout_width="fill_parent"  

              android:layout_height="wrap_content"  

              android:text="临时"/>  

           

<TextView android:id="@+id/textview" android:layout_width="fill_parent"

android:layout_height="wrap_content" android:textSize="22dp" />

</LinearLayout>  



、、、、、、、、、、、、、、、、、、


package basic.android.lesson26;  

 

import java.util.Calendar;


import android.app.Activity;  

import android.content.Context;  

import android.content.Intent;  

import android.location.Criteria;  

import android.location.Location;  

import android.location.LocationListener;  

import android.location.LocationManager;  

import android.os.Bundle;  

import android.provider.Settings;  

import android.util.Log;  

import android.view.View;  

import android.widget.Button;  

import android.widget.TextView;  

import android.widget.Toast;  

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import android.app.Activity;

import android.os.Bundle;

import android.widget.TextView;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.provider.Settings.System;

import android.widget.ImageView;




  

public class TestMyGPS extends Activity {  

  

    private static final String TAG = "TestMyGPS";  

    Button mButton;  

    TextView tv1;  

    TextView mStatus;  

    TextView mTemp;  

    LocationManager mlm;  

    LocationListener locationListener;  

    String mFilter;  

    Calendar c = Calendar.getInstance();

   // public  String str1 = "《Android/OPhone开发完全讲义》";

   // String str1 = "《Android/OPhone开发完全讲义》";  在前面加不加Public,效果都一样

    //public static String str1 = "《Android/OPhone开发完全讲义》";

    public static String str1 = "《Android/OPhone开发完全讲义》";

      @Override  

    public void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.main);  

  

        // 定义UI组件  

        mButton = (Button) findViewById(R.id.button1);  

        tv1 = (TextView) findViewById(R.id.textView1);  

        mStatus = (TextView) findViewById(R.id.show_status);  

        mTemp = (TextView) findViewById(R.id.temp_text);  

       

  

        mButton.setOnClickListener(new View.OnClickListener() {  

            public void onClick(android.view.View view) {  

                // 转至 GPS 设置界面  

                Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);  

                startActivityForResult(intent, 0);  

            }  

        });  

        // 获取LocationManager对象  

        mlm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);  

  

        // 定义Criteria对象  

  

        // 获取GPS信息提供者  

        Criteria filter = getFilter();  

        mFilter = mlm.getBestProvider(filter, true);  

  

//        try {  

//            mlm.setTestProviderEnabled(mFilter, true);  

//        } catch (IllegalArgumentException e) {  

//            String err = "IllegalArgumentException=" + e.getMessage();  

//            Log.e(TAG, err);  

//            Toast.makeText(this, err, Toast.LENGTH_LONG).show();  

//        }  

//        openGPS();  

        gpsStatus();  

        // 位置监听器  

        locationListener = new LocationListener() {  

  

            // 当位置改变时触发  

            public void onLocationChanged(Location location) {  

                updateLocation(location);  

                Toast.makeText(TestMyGPS.this, "onLocationChanged=" + location, Toast.LENGTH_LONG).show();  

                gpsStatus();  

                mTemp.setText("onLocationChanged="+location);  

            }  

  

            // Provider失效时触发  

            public void onProviderDisabled(String arg0) {  

                gpsStatus();  

                mTemp.setText("onProviderDisabled=" + arg0);  

            }  

  

            // Provider可用时触发  

            public void onProviderEnabled(String arg0) {  

                gpsStatus();  

                mTemp.setText("onProviderEnabled=" + arg0);  

            }  

  

            // Provider状态改变时触发  

            public void onStatusChanged(String arg0, int arg1, Bundle arg2) {  

                mTemp.setText("onStatusChanged=" + arg0);  

            }  

        };  

  

        // 500毫秒更新一次,忽略位置变化  

        mlm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 500, 3, locationListener);  

        

   

      }

  

    private void openGPS() {  

//        if (mlm.isProviderEnabled(LocationManager.GPS_PROVIDER)) {  

//            Toast.makeText(this, " 位置源已设置! ", Toast.LENGTH_SHORT).show();  

//            return;  

//        }  

//  

//        Toast.makeText(this, " 位置源未设置! ", Toast.LENGTH_SHORT).show();  

    }  

  

    private Criteria getFilter() {  

        Criteria criteria = new Criteria();  

        // 设置定位精确度 Criteria.ACCURACY_COARSE 比较粗略, Criteria.ACCURACY_FINE则比较精细  

        criteria.setAccuracy(Criteria.ACCURACY_FINE);  

        // 设置是否需要海拔信息 Altitude  

        criteria.setAltitudeRequired(false);  

        // 设置是否需要方位信息 Bearing  

        criteria.setBearingRequired(false);  

        // 设置是否允许运营商收费  

        criteria.setCostAllowed(true);  

        // 设置对电源的需求  

        criteria.setPowerRequirement(Criteria.POWER_LOW);  

        return criteria;  

    }  

  

    private void gpsStatus() {  

        if (mlm.isProviderEnabled(LocationManager.GPS_PROVIDER)) {  

            mStatus.setText("GPS开启");  

        } else {  

            mStatus.setText("GPS未开启");  

            Toast.makeText(this, " 位置源未设置! ", Toast.LENGTH_SHORT).show();  

            // 转至 GPS 设置界面  

            Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);  

            startActivityForResult(intent, 0);  

        }  

    }  

  

    // 更新位置信息  

    private void updateLocation(Location location) {  

   

        if (location != null) {  

            tv1.setText("更新位置:" + location.toString() + "\n\t其中经度:" + location.getLongitude() + "\n\t其中纬度:"  

                    + location.getLatitude()); 

            try

            {

            FileOutputStream fos = new FileOutputStream(

            android.os.Environment.getExternalStorageDirectory()

            + "/file.txt");

            InputStream is = getResources().getAssets().open("file.txt");


            byte[] buffer = new byte[8192];

            int count = 0;

            while ((count = is.read(buffer)) >= 0)

            {

            fos.write(buffer, 0, count);

          

            }

           // String str1 = "《Android/OPhone开发完全讲义》";这个语句放在这个地方,只能在这个函数内部使用,

            //但是放到主Activity里, 我们就可以在所有地方使用。 类似全局变量的使用。

            str1= Integer.toString(c.get(Calendar.MONTH))+Integer.toString(c.get(Calendar.DAY_OF_MONTH))+ Integer.toString(c.get(Calendar.HOUR_OF_DAY))+Integer.toString(c.get(Calendar.MINUTE))+Double.toString(location.getLongitude())+","+Double.toString(location.getLatitude())+";";

            Toast.makeText(this,str1, Toast.LENGTH_LONG).show();

            

            fos.write(str1.getBytes("utf-8"));

                  fos.close();

            is.close();

            Toast.makeText(this, "已成功地将经纬度数据将写到SD卡上的文件中.", Toast.LENGTH_LONG).show();

            }

            catch (Exception e)

            {

            Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();

            }

        } else {  

            tv1.setText("更新位置失败");  

        }  

    }  

    public void onClick_SaveImageToSDCard(View view)

    {

    try

    {

    FileOutputStream fos = new FileOutputStream(

    android.os.Environment.getExternalStorageDirectory()

    + "/file.txt");

    InputStream is = getResources().getAssets().open("file.txt");


    byte[] buffer = new byte[8192];

    int count = 0;

    while ((count = is.read(buffer)) >= 0)

    {

    fos.write(buffer, 0, count);

  

    }

   // String str1 = "《Android/OPhone开发完全讲义》";这个语句放在这个地方,只能在这个函数内部使用,

    //但是放到主Activity里, 我们就可以在所有地方使用。 类似全局变量的使用。

    fos.write(str1.getBytes("utf-8"));

          fos.close();

    is.close();

    Toast.makeText(this, "已成功将文件写到SD卡上.", Toast.LENGTH_LONG).show();

    }

    catch (Exception e)

    {

    Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();

    }

    }


    public void onClick_ReadImageFromSDCard(View view)

    {

    String filename = android.os.Environment.getExternalStorageDirectory()

    + "/file.txt";

    if (!new File(filename).exists())

    {

    Toast.makeText(this, "还没有往SD卡写入文件", Toast.LENGTH_LONG).show();

    return;

    }

    //ImageView imageView = (ImageView) findViewById(R.id.imageview);

    TextView textView = (TextView)findViewById(R.id.textview);

    try

    {

    FileInputStream fis = new FileInputStream(filename);

    //Bitmap bitmap = BitmapFactory.decodeStream(fis);

    //imageView.setImageBitmap(bitmap);


    //fis.close();

    //?InputStream is = openFileInput("file.txt");

    byte[] buffer = new byte[8192];

    int byteCount = fis.read(buffer);

    String str2 = new String(buffer, 0, byteCount, "utf-8");

    //TextView textView = (TextView)findViewById(R.id.textview);

    textView.setText(str2);

    fis.close();

    }

    catch (Exception e)

    {

    // TODO: handle exception

    }

    }

       @Override  

    protected void onDestroy() {  

        mlm.removeUpdates(locationListener);  

//        mlm.setTestProviderEnabled(mFilter, false);  

        super.onDestroy();  

    }  

}  


本文转载自:

henry-zhang
粉丝 2
博文 62
码字总数 1431
作品 0
海淀
私信 提问
Android 2.2 下 camera 应用程序支持 GPS 信息写入 jpeg 文件

一、概述 在Android2.2中,Camera的应用程序并不支持将GPS信息写入到JPEG文件中,但如果要实现这个功能,有如下两种方式: 1、修改底层camera驱动。在拍照时,一般都是使用硬件去进行JPEG编码...

无鸯
2011/10/01
5.3K
1
Android之GPS定位详解

一、LocationManager LocationMangager,位置管理器。要想操作定位相关设备,必须先定义个LocationManager。我们可以通过如下代码创建LocationManger对象。 LocationManger locationManager...

程序袁_绪龙
2014/09/28
375
0
Android SDK:构建一个购物中心搜索的应用(二)-Points of Interest

本文为原创翻译,原文链接:http://mobile.tutsplus.com/tutorials/android/android-sdk-build-a-mall-finder-app-points-of-interest/ 本教程将探讨如何使用谷歌地图API来显示出信息点(POI...

迷途d书童
2012/01/31
688
1
Android 平台上编程实现 GPS 定位

在几个月前,开发式手机联盟推出自己的Android手机雏形时,受到了极大的追捧。但是到现在还没有真机在市场上销售,Google为了鼓励开发 人员来开发Android手机的应用程序,提供了1千万美金来奖...

红薯
2009/06/18
13.2K
4
9种常见的Android开发错误及解决方案

整理总结了9个Android开发中的错误以及解决方案,共同探讨进步! 1. 如果你的项目的R文件不见的话,可以试下改版本号在保存,R文件不见一般都是布局文本出错导致. 2. 布局文件不可以有大写字母...

拉偶有所依
2015/01/21
432
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
7
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
7
0
Flutter系列之在 macOS 上安装和配置 Flutter 开发环境

本文为Flutter开发环境在macOS下安装全过程: 一、系统配置要求 想要安装并运行 Flutter,你的开发环境需要最低满足以下要求: 操作系统:macOS(64位) 磁盘空间:700 MB(不包含 IDE 或其余...

過愙
昨天
6
0
OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
昨天
2.7K
16
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
昨天
42
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部