将源代码添加进Eclipse中,右键-->Import-->Existing Projects into Workspace-->选择AirplaceLogger源代码文件夹即可导入软件中。

按包package可分为6个部分:cy.com.airplacersslogger(接收点信号强度录入)、airplacersslogger.FileBrowser(接收点信号录入.文件浏览)、Uploading(上传)、util(总)、zoom(缩放)和Wifi(局域网无线信号)

一、airplacersslogger(接收点信号强度录入)

1. LogRecord.java

package cy.com.airplacersslogger;

public class LogRecord { //LogRecord日志记录类

private long ts;
private double lng;
private double lat;
private String bssid;
private int rss;

public LogRecord(long ts, double lat, double lng, String bssid, int rss) { //构造函数
super();
this.ts = ts;
this.lng = lng;
this.lat = lat;
this.bssid = bssid;
this.rss = rss;
}

public String toString() { //转String
String str = new String();
str = String.valueOf(ts) + " " + String.valueOf(lat) + " " + String.valueOf(lng) + " " + String.valueOf(bssid) + " " + String.valueOf(rss)
+ "\n";
return str;
}

}

2. Prefs.java

package cy.com.airplacersslogger;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.Preference.OnPreferenceClickListener;
import android.provider.MediaStore.MediaColumns;
import cy.com.airplacersslogger.R;
import cy.com.airplacersslogger.FileBrowser.AndroidFileBrowser;

public class Prefs extends PreferenceActivity implements OnSharedPreferenceChangeListener {

    private static final int SELECT_IMAGE = 7;
private static final int SELECT_PATH = 8;
private static final int SELECT_FILE = 9; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getPreferenceManager().setSharedPreferencesName(RSSLogger.SHARED_PREFS_NAME); addPreferencesFromResource(R.xml.preferences);
getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); getPreferenceManager().findPreference("image_custom").setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override
public boolean onPreferenceClick(Preference preference) {
Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
i.setType("image/*");
startActivityForResult(i, SELECT_IMAGE);
return true;
}
}); getPreferenceManager().findPreference("folder_browser").setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override
public boolean onPreferenceClick(Preference preference) { Intent i = new Intent(getBaseContext(), AndroidFileBrowser.class); Bundle extras = new Bundle();
extras.putBoolean("to_Browse", true); i.putExtras(extras); startActivityForResult(i, SELECT_PATH);
return true;
}
}); getPreferenceManager().findPreference("upload_file").setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override
public boolean onPreferenceClick(Preference preference) { Intent i = new Intent(getBaseContext(), AndroidFileBrowser.class); Bundle extras = new Bundle();
extras.putBoolean("to_Browse", false); i.putExtras(extras); startActivityForResult(i, SELECT_FILE);
return true;
}
});
} @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); SharedPreferences customSharedPreference; customSharedPreference = getSharedPreferences(RSSLogger.SHARED_PREFS_NAME, MODE_PRIVATE); switch (requestCode) { case SELECT_IMAGE:
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = data.getData();
String RealPath;
SharedPreferences.Editor editor = customSharedPreference.edit();
RealPath = getRealPathFromURI(selectedImage);
editor.putString("image_custom", RealPath);
editor.commit();
}
break;
case SELECT_PATH:
if (resultCode == Activity.RESULT_OK) {
Uri selectedFolder = data.getData();
String path = selectedFolder.toString();
SharedPreferences.Editor editor = customSharedPreference.edit();
editor.putString("folder_browser", path);
editor.commit();
}
break;
case SELECT_FILE:
if (resultCode == Activity.RESULT_OK) {
Uri selectedFile = data.getData();
String file = selectedFile.toString();
SharedPreferences.Editor editor = customSharedPreference.edit();
editor.putString("upload_file", file);
editor.commit();
}
break;
}
} public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaColumns.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaColumns.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} @Override
protected void onResume() {
super.onResume();
// Set up a listener whenever a key changes
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
} @Override
protected void onDestroy() {
// Unregister the listener whenever a key changes
getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
super.onDestroy();
} @Override
protected void onPause() {
super.onPause();
// Unregister the listener whenever a key changes
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
} @Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
} }

3. RSSLogger.java

AirplaceLogger源代码解析的更多相关文章

  1. Spring源代码解析

    Spring源代码解析(一):IOC容器:http://www.iteye.com/topic/86339 Spring源代码解析(二):IoC容器在Web容器中的启动:http://www.itey ...

  2. Arrays.sort源代码解析

    Java Arrays.sort源代码解析 Java Arrays中提供了对所有类型的排序.其中主要分为Primitive(8种基本类型)和Object两大类. 基本类型:采用调优的快速排序: 对象类 ...

  3. Spring源代码解析(收藏)

    Spring源代码解析(收藏)   Spring源代码解析(一):IOC容器:http://www.iteye.com/topic/86339 Spring源代码解析(二):IoC容器在Web容器中的 ...

  4. volley源代码解析(七)--终于目的之Response<T>

    在上篇文章中,我们终于通过网络,获取到了HttpResponse对象 HttpResponse是android包里面的一个类.然后为了更高的扩展性,我们在BasicNetwork类里面看到.Volle ...

  5. Cocos2d-x源代码解析(1)——地图模块(3)

    接上一章<Cocos2d-x源代码解析(1)--地图模块(2)> 通过前面两章的分析,我们能够知道cocos将tmx的信息结构化到 CCTMXMapInfo.CCTMXTilesetInf ...

  6. Android EventBus源代码解析 带你深入理解EventBus

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40920453,本文出自:[张鸿洋的博客] 上一篇带大家初步了解了EventBus ...

  7. 源代码解析Android中View的layout布局过程

    Android中的Veiw从内存中到呈如今UI界面上须要依次经历三个阶段:量算 -> 布局 -> 画图,关于View的量算.布局.画图的整体机制可參见博文 < Android中Vie ...

  8. Android xUtils3源代码解析之网络模块

    本文已授权微信公众号<非著名程序猿>原创首发,转载请务必注明出处. xUtils3源代码解析系列 一. Android xUtils3源代码解析之网络模块 二. Android xUtil ...

  9. Android View体系(八)从源代码解析View的layout和draw流程

    相关文章 Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源 ...

随机推荐

  1. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 规范与部署

    沪江CCtalk视频地址:https://www.cctalk.com/v/15114923889450 规范与部署 懒人推动社会进步. 本篇中,我们会讲述三个知识点 定制书写规范 开发环境运行 如何 ...

  2. 解决PL/SQL导出cvs文件中文显示乱码

    方法 1 导出csv格式文件 新建excel文件 比如 a.xls excel软件打开 选择菜单数据 -导入外部数据  unicode默认下一步 选择 逗号分隔符 点击确定导入完成 方法 2 导出成h ...

  3. gerp , sed , awk

    gerp 查找, sed 编辑, awk 根据内容分析并处理. awk(关键字:分析&处理) 一行一行的分析处理 awk '条件类型1{动作1}条件类型2{动作2}' filename, aw ...

  4. mysql备份和还原命令

    备份和还原数据库都是在未登录的前提下进行命令操作的: 1.备份表: mysqldump -u root -p dbname table1 table2 > D:\sqlback.sql 2.备份 ...

  5. 浅谈Spark应用程序的性能调优

    浅谈Spark应用程序的性能调优 :http://geek.csdn.net/news/detail/51819 下面列出的这些API会导致Shuffle操作,是数据倾斜可能发生的关键点所在 1. g ...

  6. HTML 鼠标悬浮隐藏部分 习题

    css样式表: @charset "utf-8"; /* CSS Document */ .a { width:80px; height:40px; background-colo ...

  7. SpringBoot yml properties文件

    一.在SpringBoot实现属性注入: 1).添加pom依赖jar包: 1 <!-- 支持 @ConfigurationProperties 注解 --> 2 <!-- https ...

  8. java的反射应用

    class B{ public static void main(String[] arg){ Class c_a = Class.forName(packageName + "." ...

  9. springmvc DispatchServlet初始化九大加载策略(二)

    4. initHandlerMappings 请求分发 HandlerMappings是一个List<HandlerMapping>类型数据,也就是说初始化可以存放多种Mapping,和其 ...

  10. java并发:AtomicInteger 以及CAS无锁算法【转载】

    1 AtomicInteger解析 众所周知,在多线程并发的情况下,对于成员变量,可能是线程不安全的: 一个很简单的例子,假设我存在两个线程,让一个整数自增1000次,那么最终的值应该是1000:但是 ...