package com.android.andtriplog;
import java.util.Date;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.database.Cursor;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.PowerManager;
import android.util.Log;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.AdapterContextMenuInfo;
public class AndTripLog extends Activity implements LocationListener {
static final String DATABASE_NAME = "andtriplog.db";
static final int DATABASE_VERSION = 7;
public DatabaseHelper mAndTripLogDB;
private TextView gpsstateTextView;
protected LocationManager myLocationManager = null;
private int current_trip = 0;
private int current_point = 0;
private ListView listview_trace;
private SimpleCursorAdapter sc_adapter;
private Location last_loc;
private float total_distance;
private long first_timestamp = 0;
private long last_timestamp = 0;
private ExportThread mExportThread;
private static final int MENU_COPY = 1;
private static final int MENU_START = 2;
private static final int MENU_STOP = 3;
private static final int MENU_DELETE_ALL = 4;
private static final int MENU_EXPORT_ALL = 5;
private static final int MENU_EXPORT_SEND_ALL = 6;
private MenuItem start_menu;
private MenuItem stop_menu;
private MenuItem delete_all_menu;
private MenuItem export_all_menu;
private MenuItem export_send_all_menu;
private ProgressDialog mProgressDialog;
private AlertDialog mDeleteDialog;
protected PowerManager.WakeLock wlatp;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
Log.w("AndTripLog","1");
listview_trace = (ListView)findViewById(R.id.traceView);
registerForContextMenu(listview_trace);
gpsstateTextView = (TextView)findViewById(R.id.gpsstate);
gpsstateTextView.setText(R.string.tips_not_running);
mAndTripLogDB = new DatabaseHelper(this);
mAndTripLogDB.startDatabase();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wlatp = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "AndTripLog tag");
fillList();
}
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menu.setHeaderTitle(R.string.c_menu_title);
menu.setHeaderIcon(R.drawable.satellite);
menu.add(Menu.NONE,0,0,R.string.c_menu_send);
menu.add(Menu.NONE,1,1,R.string.c_menu_save);
menu.add(Menu.NONE,2,2,R.string.c_menu_delete);
}
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
long id = sc_adapter.getItemId(info.position);
switch(item.getItemId()) {
case 0: //Send
exportTrip(id,true);
break;
case 1: //Save
exportTrip(id,false);
break;
case 2: //Delete
// exportTrip(id,false);
deleteTrip(id);
fillList();
break;
}
return true;
}
@Override
protected void onPause() {
super.onPause();
Log.w("AndTripLog","onpause");
}
@Override
protected void onResume() {
super.onResume();
Log.w("AndTripLog","onresume");
}
public boolean isFinishing() {
return false;
}
@Override
protected void onStop() {
super.onStop();
Log.w("AndTripLog","onstop");
}
@Override
protected void onStart() {
super.onStart();
Log.w("AndTripLog","onstart");
}
@Override
protected void onDestroy() {
super.onDestroy();
if (wlatp.isHeld()) {
wlatp.release();
}
myLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
myLocationManager.removeUpdates(this);
mAndTripLogDB.end();
Log.w("AndTripLog","ondestroy");
}
@Override
protected void onRestart() {
super.onRestart();
Log.w("AndTripLog","onrestart");
}
/**
*
*
*/
private void startAnewTrip() {
current_trip = mAndTripLogDB.startAnewTrip();
current_point = 0;
total_distance = 0;
last_loc = null;
first_timestamp = 0;
last_timestamp = 0;
}
private void newPointDB(double longitude,double latitude,double altitude,long gps_time) {
mAndTripLogDB.newPointDB(longitude, latitude, altitude, gps_time, current_trip);
current_point++;
}
private void stopTrip(){
myLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
myLocationManager.removeUpdates(this);
mAndTripLogDB.stopTrip(last_timestamp, first_timestamp, total_distance, current_trip);
current_trip = 0;
current_point = 0;
}
private void fillList(){
gpsstateTextView.setText(R.string.tips_not_running);
Cursor lst = mAndTripLogDB.getListing();
startManagingCursor(lst);
Log.w("AndTripLog","4");
listview_trace.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
sc_adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, lst,new String[] {"cmt","descr"},
new int[] {android.R.id.text1, android.R.id.text2});
listview_trace.setAdapter(sc_adapter);
}
private void setupForGPSAutoRefreshing() {
final long MINIMUM_DISTANCECHANGE_FOR_UPDATE = 0; // in Meters
final long MINIMUM_TIME_BETWEEN_UPDATE = 1000; // in Milliseconds
// Get the first provider available
myLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Log.w("AndTripLog","40 gps");
myLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MINIMUM_TIME_BETWEEN_UPDATE, MINIMUM_DISTANCECHANGE_FOR_UPDATE, this);
Log.w("AndTripLog","50 gps");
}
public void onProviderDisabled(String provider) {
Log.w("AndTripLog","OnProviderDisabled " + provider);
gpsstateTextView.setText(R.string.gps_inactive);
}
public void onProviderEnabled(String provider) {
Log.w("AndTripLog","OnProviderEnabled " + provider);
// gpsstateTextView.setText("OnProviderEnabled " + provider);
}
public void onStatusChanged(String provider, int status, Bundle extras){
Log.w("AndTripLog","onStatusChanged "+provider+":"+status);
// gpsstateTextView.setText("onStatusChanged "+provider+":"+status);
}
private String formatMilliSeconds(long s) {
String ret = new String();
if (s < 0) {
ret += s+"ms";
} else if (s < 60000) {
ret += (s/1000)+"s";
} else if (s < 1000 * 3600) {
long min = s/(1000*60);
long sec = (s- (min*60*1000))/ 1000;
ret += min+"m,";
ret += sec+"s";
} else {
long min = s/(1000*60);
long hour = min/60;
min -= hour*60;
long sec = (s- (min*60*1000))/ 1000;
ret += hour+"h,";
ret += min+"m,";
ret += sec+"s";
}
return ret;
}
@Override
public void onLocationChanged(Location location) {
Log.w("AndTripLog","136 write");
Date d = new Date(location.getTime());
if (last_loc != null) {
total_di
没有合适的资源?快使用搜索试试~ 我知道了~
Android Gps日志记录程序源码.zip
共120个文件
svn-base:40个
all-wcprops:18个
entries:18个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 198 浏览量
2022-06-14
15:03:28
上传
评论
收藏 677KB ZIP 举报
温馨提示
Android Gps日志记录程序源码.zip
资源推荐
资源详情
资源评论
收起资源包目录
Android Gps日志记录程序源码.zip (120个子文件)
all-wcprops 1KB
all-wcprops 640B
all-wcprops 640B
all-wcprops 430B
all-wcprops 298B
all-wcprops 212B
all-wcprops 190B
all-wcprops 184B
all-wcprops 88B
all-wcprops 88B
all-wcprops 88B
all-wcprops 80B
all-wcprops 80B
all-wcprops 80B
all-wcprops 76B
all-wcprops 76B
all-wcprops 76B
all-wcprops 76B
resources.ap_ 12KB
AndTripLog.apk 25KB
AndTripLog-1.0.1.apk 25KB
AndTripLog-1.0.0.apk 25KB
AndTripLog.apk 25KB
AndTripLog.class 14KB
DatabaseHelper.class 5KB
GpxFileWriter.class 4KB
ExportThread.class 4KB
AndTripLog$1.class 1KB
AndTripLog$2.class 1KB
AndTripLog$4.class 1KB
AndTripLog$5.class 1KB
AndTripLog$3.class 1KB
R$string.class 1016B
AndTripLog$6.class 874B
R.class 559B
R$id.class 540B
R$drawable.class 445B
R$layout.class 406B
R$attr.class 352B
.classpath 273B
classes.dex 24KB
entries 2KB
entries 880B
entries 880B
entries 735B
entries 553B
entries 397B
entries 386B
entries 382B
entries 269B
entries 257B
entries 257B
entries 257B
entries 246B
entries 246B
entries 246B
entries 238B
entries 238B
entries 238B
AndTripLog.java 15KB
DatabaseHelper.java 4KB
GpxFileWriter.java 3KB
ExportThread.java 2KB
R.java 2KB
onTrip.png 35KB
confirmDeleteAllTrip.png 34KB
exportAll.png 29KB
menu.png 23KB
send.png 20KB
confirmDeleteOneTrip.png 19KB
ActionOnTrip.png 17KB
List.png 13KB
empty.png 8KB
satellite.png 4KB
icon.png 3KB
.project 813B
default.properties 961B
onTrip.png.svn-base 35KB
confirmDeleteAllTrip.png.svn-base 34KB
exportAll.png.svn-base 29KB
AndTripLog-1.0.1.apk.svn-base 25KB
AndTripLog-1.0.0.apk.svn-base 25KB
AndTripLog.apk.svn-base 25KB
menu.png.svn-base 23KB
send.png.svn-base 20KB
confirmDeleteOneTrip.png.svn-base 19KB
ActionOnTrip.png.svn-base 17KB
AndTripLog.java.svn-base 15KB
AndTripLog.java.svn-base 15KB
List.png.svn-base 13KB
empty.png.svn-base 8KB
satellite.png.svn-base 4KB
DatabaseHelper.java.svn-base 4KB
DatabaseHelper.java.svn-base 4KB
icon.png.svn-base 3KB
GpxFileWriter.java.svn-base 3KB
GpxFileWriter.java.svn-base 3KB
ExportThread.java.svn-base 2KB
ExportThread.java.svn-base 2KB
R.java.svn-base 2KB
共 120 条
- 1
- 2
资源评论
BryanDing
- 粉丝: 299
- 资源: 5584
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- VIVADO中UART IP核使用
- 【深度学习实际案例解析】深度学习实际案例解析
- 封装swagger组件,提供全新UI以及无状态登录接口调用解决方案
- 小龙坎支局2024年4月渠道积分核对数据.xlam
- onlyoffice搭建及与alist使用的view.html
- Quadcopter-UAV-attitude-estimation-linux常用命令大全demo
- Quadcopter-UAV-attitude-estimation-based-on-数据库课程设计
- pbdlib-python-master.zip
- 43904245495352013_base.apk
- 基于springboot+vue + redis的工作流审批系统
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功