0511-Android程式之GPS應用_專題週記4

Similar documents
多媒體應用 13 新增專案並完成版面配置 <ExMusic01> <activity_main.xml> ImageView ID imgplay ImageView ID imgstop ImageView ID imgfront TextView ID txtsong TextView ID t

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

ShareText

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 :

Android Service

Dynamic Layout in Android

Android Fragment

Android + NFC

Database_001

Android Android Android SDK iv

Android 开发教程

Microsoft Word - 02.目錄.doc

建立Android新專案

图 6-1 主界面 MainActivity 界面对应的布局文件 (activity_main.xml) 如下所示 : <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="

建立Android新專案

RecyclerView and CardVew

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

untitled

Microsoft Word - 第3章.doc

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

第一章 Android 简介与开发环境搭建

投影片 1

Microsoft PowerPoint - 07.Android 介面元件-TableLayout、Toast、AlertDialog

Lecture01_Android介绍

内文-2.indd

Microsoft Word - AEL CH10

書面

建立Android新專案

Microsoft Word - PHP7Ch01.docx

Microsoft Word - 01.DOC

教育部補助資訊軟體人才培育先導計畫 100 年度課程發展專案計畫 實驗課程名稱 : IPC(Inter-Process Communication) 開發教師 : 張晉源老師 開發學生 : 林政揚 學校系所 : 樹德科技大學資訊工程學系

PowerPoint 簡報

Lecture01_Android介绍

Android 编程基础 Android 开发教程 & 笔记 1

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

Android 开发教程

幻灯片 1

投影片 1

目 錄 一 ANDROID 開發系統需求 作業系統 開發工具... 1 二 安裝 ANDROID 開發工具 安裝 JDK 使用 APT-GET 安裝 使用套件管理程式安裝... 9 三 ANDROID 程式撰寫... 1

建模与图形思考

苏州中科图新网络科技有限公司 客服电话 LSViewer-Android 开发指南 V2.0 撰写单位 最后修订日期 苏州中科图新网络科技有限公司 2016 年 12 月 1

任务实施 (1) 创建项目 图 3-1 欢迎界面 首先创建一个工程, 将其命名为 BoXueGu, 指定包名为 com.boxuegu (2) 导入界面图片将欢迎界面所需要的背景图片 launch_bg.png 导入到 drawable 文件夹中, 项目的 icon 图标 app_icon.png

JavaIO.PDF

chp6.ppt

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

Java

03 开发入门.key

Android 开发教程

x MapReduce A Italic URL Constant width Constant width bold Constant width italic 這個圖示代表提示或建議 這個圖示代表一般註解

EJB-Programming-4-cn.doc

《大话设计模式》第一章

Microsoft Word - 第4章 3D相册.doc

Microsoft Word - JAVA Programming Language Homework VI_ans.doc

_banneradview.settest(true); _banneradview.setuserkeywords("swimming"); _banneradview.setusercategories("1,3,4"); _banneradview.setusergender(jdbanner

untitled

Android + WebService

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之

Swing-02.pdf

Microsoft PowerPoint - 03 开发入门.ppt [兼容模式]

Microsoft Word - 第3章.doc

题目

2000 中華民國自動控制研討會徵文啟事

Chapter 9: Objects and Classes

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc


Microsoft Word - 第5章.doc

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

The golden pins of the PCI card can be oxidized after months or years

國立勤益科技大學 電子工程系 四技日實務專題報告 題目 : 導航人物 APP 指導教授 : 陳英傑 專題生 : 方懋穎 中華民國一百零六年六月 1

<4D F736F F D BB4FC657A4E5A4C6BEC7B34EACE3B051B77CC4B3B57BAAED2E646F6378>

Microsoft PowerPoint - Lab 2-3 Android Google Maps.ppt [相容模式]

Microsoft Word - 第1章 Android基本概念.docx

建模与图形思考

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

Chapter 10

使用MapReduce读取XML文件

Microsoft Word - weather12 刷新按钮动画+搜索框+bug处理.docx

實作SQLiteOpenHelper類別

Android TSC Bluetooth/Ethernet 函式庫使用說明 1. openport(a) Bluetooth openport(a) 說明 : 指定電腦端的輸出埠參數 : a: 字串型別直接指定 Bluetooth MacAdress, 如 00:19:0E:A0:04:E1 Et

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

Microsoft Word - 第3章 Activity.doc

_banneradview.setuserkeywords("swimming"); _banneradview.setusercategories("1,3,4"); _banneradview.setusergender(jdbanneradview.gender_male); _bannera

第一章 章标题-F2 上空24,下空24

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

投影片 1

Chapter 1: Introduction

Android 开发快速入门 第 章.1 开发环境的搭建 在开始 Android 开发之旅启动之前, 首先要搭建环境,Android 开发环境的安装和配置是 开发 Android 应用程序的第一步, 也是深入 Android 平台的一个非常好的入口.1.1 开发准备工作 配置 Android 开发环

untitled

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

Microsoft Word - ch04三校.doc

Microsoft Word - AEL CH05.doc

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

版权声明

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

Transcription:

逢甲大學通訊工程學系專題研究 Android 程式之 GPS 應用 專題週記 0511 學生姓名 陳彥儒 D0035131 廖元譽 D0077791 指導老師 楊豐瑞老師繳交日期 2014.05.11

1 匯入 GoogleMap 1.1 取得授權步驟 目前進度 取得 Google 授權鑰匙 實作程式尚未成功 1.1.1 建立個人的 keystore

1.1.2 由個人的 keystore 查詢 SHA1 碼 1.1.3 利用 SHA1 碼至 Google apis 網站申請 key

2 寫入指定文字到 SD 卡 2.1 流程 目前進度 目前用出把程式裡的文字敘述 放到 sdcard 新增的 txt 檔裡 還未達成目標能夠在模擬器上寫入與讀取 SD 卡上的.txt 文件檔 寫入文字檔須使用 java 當中的 FileWriter 寫入單位為 char 產生物件方式為 : FileWrite FWriter = new FileWriter( /sdcard/output.txt,false) 第一個參數為檔案名稱及路徑 第二個參數為寫入模式是否為 append( 附加方式寫檔 )(False 表示寫入的資料會覆蓋掉檔案原有的內容 若設為 True 則表示用附加的方式寫到檔案原有內容之後 ) 除了使用 FileWriter 外 常會搭配使用 BufferedWriter 與 FileWriter 不同之處在於 Buffer 機制 當只用 FileWriter 寫檔時 每次呼叫 write() 當會動用到 I/O 假若使用 Buffer 機制來做 write() 會先將要寫入的檔案暫時暫存起來 等到一定資料量之後在寫入磁碟 因此可以省下不少 I/O 的負擔

2.2 匯入權限 2.3 程式碼 要先在 AndroidManifest.xml 加入 SD 卡的使用權限 讓我們可以寫入資料與讀取資料 <uses-permission android:name="android.permission.write_external_storage"/> package com.vince.test; import java.io.bufferedwriter; import java.io.file; import java.io.filewriter; import java.io.ioexception; import android.app.activity; import android.os.bundle; import android.os.environment; public class MainActivity extends Activity /** Called when the activity is first created. */ @Override public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview( R.layout.main ); try FileWriter fw = new FileWriter("/sdcard/output.txt", false); BufferedWriter bw = new BufferedWriter(fw); // 將 BufferedWeiter 與 FileWrite 物件做連結 bw.write("hello, Sih! Hello, Android!"); bw.newline(); bw.close(); catch(ioexception e) e.printstacktrace();

2.4 結果 用 CMD 內 adb shell 查看所建立的 output.txt 是否成功 Adb 指令列出目前開啟模擬器 列出虛擬機器中所有的檔案目錄

進入 sdcard 目錄 開啟 output.txt 檔案 輸入 ls 可以看到手機內目前所有資料夾 在主程式內設定了文字檔存放的位置 "/sdcard/output.txt" 所以在此會先看到 sdcard 資料夾 裡頭建立了 output.txt 並且寫入了程式碼內的 Hello, Sih! Hello, Android!

3 寫入任意文字並且可以讀取 3.1 說明 3.2 程式碼 可以自由的輸入任意文字並儲存到 SD 記憶卡中 並且能隨時從中呼叫出來 主程式 MainActivity.java package com.vince.test2; import java.io.bufferedreader; import java.io.file; import java.io.filereader; import java.io.filewriter; import android.app.activity; import android.app.actionbar; import android.app.fragment; import android.os.bundle; import android.os.environment; import android.view.layoutinflater; import android.view.menu; import android.view.menuitem; import android.view.view; import android.view.view.onclicklistener; import android.view.viewgroup; import android.widget.button; import android.widget.edittext; import android.widget.textview; import android.widget.toast; import android.os.build; public class MainActivity extends Activity // 寫入按鈕與讀取按鈕

private Button msetbtn, mgetbtn; // 輸入儲存文字的 EditText private EditText medit; // 顯示讀取文字的 TextView private TextView mtext; @Override protected void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.main); msetbtn = (Button) findviewbyid(r.id.setbtn); medit = (EditText) findviewbyid(r.id.edit); mgetbtn = (Button) findviewbyid(r.id.getbtn); mtext = (TextView) findviewbyid(r.id.text); msetbtn.setonclicklistener(new OnClickListener() public void onclick(view v) try File msdfile = null; // 檢查有沒有 SD 卡裝置 if(environment.getexternalstoragestate().equals( Environment.MEDIA_REMOVED)) Toast.makeText(MainActivity.this, " 沒有 SD 卡!!!", Toast.LENGTH_SHORT ).show(); return ; else // 取得 SD 卡儲存路徑 msdfile = Environment.getExternalStorageDirectory(); // 建立文件檔儲存路徑

"/MyAndroid"); File mfile = new File(mSDFile.getParent() + "/" + msdfile.getname() + // 若沒有檔案儲存路徑時則建立此檔案路徑 if(!mfile.exists()) mfile.mkdirs(); // 取得 medit 文字並儲存寫入至 SD 卡文件裡 FileWriter mfilewriter = new FileWriter( msdfile.getparent() + "/" + msdfile.getname() + "/MyAndroid/Pubby.txt" ); mfilewriter.write(medit.gettext().tostring()); mfilewriter.close(); Toast.makeText(MainActivity.this, " 已儲存文字 ", Toast.LENGTH_SHORT).show(); catch (Exception e) ); mgetbtn.setonclicklistener(new OnClickListener() public void onclick(view v) try // 取得 SD 卡儲存路徑 File msdfile = Environment.getExternalStorageDirectory(); // 讀取文件檔路徑 FileReader mfilereader = new FileReader(mSDFile.getParent() + "/" + msdfile.getname() + "/MyAndroid/Pubby.txt"); BufferedReader mbufferedreader = new BufferedReader(mFileReader); String mreadtext = ""; String mtextline = mbufferedreader.readline();

// 一行一行取出文字字串裝入 String 裡 直到沒有下一行文字停止跳出 while (mtextline!=null) mreadtext += mtextline+"\n"; mtextline = mbufferedreader.readline(); // 文字放入 mtext 裡 並清空 medit mtext.settext(mreadtext); Toast.makeText(MainActivity.this, " 已讀取文字 ", Toast.LENGTH_SHORT).show(); medit.settext(""); catch(exception e) ); 版面設計 main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="20dip" android:layout_gravity="center_vertical" android:gravity="center_vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" 儲存文字 : " />

<EditText android:id="@+id/edit" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint=" 請輸入儲存文字 " /> <Button android:id="@+id/setbtn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text=" 文字儲存至 SD 卡 " /> <TextView android:layout_width="match_parent" android:layout_height="1dip" android:background="#000000" android:layout_margintop="40dip" android:layout_marginbottom="40dip" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" 讀取文字 : " /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/getbtn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text=" 讀取 SD 卡文字 " />

</LinearLayout> 3.3 結果 3.3.1 文字儲存至 SD 卡

3.3.2 讀取 SD 卡文字

4 程式內嵌入 Google Map 4.1 流程 申請 Google Maps Android API key 另外載入 Google 服務 library

4.2 程式碼 主程式 MainActivity.java package com.wizozc25852.g_map; import android.app.activity; import android.os.bundle; import com.google.android.gms.maps.cameraupdatefactory; import com.google.android.gms.maps.googlemap; import com.google.android.gms.maps.mapfragment; import com.google.android.gms.maps.model.latlng; import com.google.android.gms.maps.model.marker; import com.google.android.gms.maps.model.markeroptions; public class MainActivity extends Activity static final LatLng NKUT = new LatLng(23.979548, 120.696745); private GoogleMap map; @Override protected void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.fragment_main); map = ((MapFragment) getfragmentmanager().findfragmentbyid(r.id.map)).getmap(); Marker nkut = map.addmarker(new MarkerOptions().position(NKUT).title("00").snippet("11")); map.movecamera(cameraupdatefactory.newlatlngzoom(nkut, 16));

界面檔 fragment_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".mainactivity" > <fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.mapfragment" /> </RelativeLayout> 權限檔 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.wizozc25852.g_map" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="14" android:targetsdkversion="19" /> <uses-feature android:glesversion="0x00020000" android:required="true"/> <uses-permission android:name="android.permission.internet"/> <uses-permission android:name="android.permission.access_network_state"/> <uses-permission android:name="android.permission.write_external_storage"/> <uses-permission android:name="com.google.android.providers.gsf.permission.read_gservices"/>

<application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="com.wizozc25852.g_map.mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <meta-data android:name="com.google.android.maps.v2.api_key" android:value="aizasyd_glwfn5_yuhemj-y7ijypsacyeju94je" /> </application> </manifest> 前面申請的 API key

4.3 結果 不知道為什麼錯誤的執行結果 手機上執行也是一樣 尚未解決

5 分工 5.1 匯入 GoogleMap 陳彥儒 5.2 寫入指定文字到 SD 卡廖元譽 5.3 寫入任意文字並且可以讀取廖元譽 陳彥儒 5.4 程式內嵌入 Google Map 陳彥儒