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日志记录程序源码 (124个子文件)
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
Android开发视频教程.exe 2.74MB
Android开发视频教程.exe 2.74MB
AndTripLog.java 15KB
DatabaseHelper.java 4KB
GpxFileWriter.java 3KB
ExportThread.java 2KB
R.java 2KB
onTrip.png 35KB
confirmDeleteAllTrip.png 34KB
exportAll.png 29KB
1-120Q92055280-L.png 28KB
menu.png 23KB
send.png 20KB
confirmDeleteOneTrip.png 19KB
1_120819205645_1.png 17KB
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
共 124 条
- 1
- 2
资源评论
- sinat_290765052015-06-30不错的代码
guow1617
- 粉丝: 1
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功