package sjtu.com.apdetector;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.location.LocationManager;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Environment;
import android.provider.Settings;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Toast;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
public class MainActivity extends ActionBarActivity {
Button test,test2,test3,test4;
DataBase data;
AlarmManager amanager;
GPS_Server gps;
WifiManager wm;
WifiInfo wInfo;
private LocationManager lm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data=DataBase.GetData(this);
test=(Button)findViewById(R.id.test);
test2=(Button)findViewById(R.id.test2);
test3=(Button)findViewById(R.id.test3);
test4=(Button)findViewById(R.id.test4);
lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
if (!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Toast.makeText(this, "请开启GPS导航...", Toast.LENGTH_LONG).show();
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, 0);
}
gps=new GPS_Server(this);
wm = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
wInfo = wm.getConnectionInfo();
amanager=(AlarmManager)getSystemService(Service.ALARM_SERVICE);
Intent intent=new Intent(MainActivity.this,FirstService.class);
final PendingIntent pi=PendingIntent.getService(MainActivity.this,0,intent,0);
test.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
amanager.setRepeating(AlarmManager.ELAPSED_REALTIME,0,5000,pi);
test.setEnabled(false);
test3.setEnabled(true);
Toast.makeText(MainActivity.this,"后台程序已启动",Toast.LENGTH_SHORT).show();
}
});
test2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
test.setEnabled(true);
amanager.cancel(pi);
Toast.makeText(MainActivity.this,"后台程序已停止",Toast.LENGTH_SHORT).show();
}
});
test3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent2=new Intent(MainActivity.this,History.class);
startActivity(intent2);
}
});
test4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cursor c = data.getReadableDatabase().rawQuery("select * from data", null);
ExportToCSV(c, "test.csv");
}
});
}
public void ExportToCSV(Cursor c, String fileName) {
int rowCount = 0;
int colCount = 0;
FileWriter fw;
BufferedWriter bfw;
String sdCardDir = Environment.getExternalStorageDirectory()
.getAbsolutePath()+"/"+fileName;
File saveFile = new File(sdCardDir);
try {
rowCount = c.getCount();
colCount = c.getColumnCount();
fw = new FileWriter(saveFile);
bfw = new BufferedWriter(fw);
if (rowCount > 0) {
c.moveToFirst();
// 写入表头
for (int i = 0; i < colCount; i++) {
if (i != colCount - 1)
bfw.write(c.getColumnName(i) + ',');
else
bfw.write(c.getColumnName(i));
}
// 写好表头后换行
bfw.newLine();
// 写入数据
for (int i = 0; i < rowCount; i++) {
c.moveToPosition(i);
// Toast.makeText(mContext, "正在导出第"+(i+1)+"条",
// Toast.LENGTH_SHORT).show();
Log.v("导出数据", "正在导出第" + (i + 1) + "条");
for (int j = 0; j < colCount; j++) {
if (j != colCount - 1)
bfw.write(c.getString(j) + ',');
else
bfw.write(c.getString(j));
}
// 写好每条记录后换行
bfw.newLine();
}
}
// 将缓存数据写入文件
bfw.flush();
// 释放缓存
bfw.close();
// Toast.makeText(mContext, "导出完毕!", Toast.LENGTH_SHORT).show();
Log.v("导出数据", "导出完毕!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
c.close();
}
}
}