@Override protected void onDestroy() { LogManager.d(TAG, "onDestroy()"); super.onDestroy(); mFindBeacons.closeSearcher(); loghelper.stop(); }
/** 停止查找beacons */ public void onMonitoringStop(View view) { logToDisplay("onMonitoringStop(),stopMonitoringBeaconsInRegion"); LogManager.d(TAG, "onMonitoringStop(),stopMonitoringBeaconsInRegion"); mFindBeacons.closeSearcher(); mStart_btn.setEnabled(true); mStop_btn.setEnabled(false); // 设置记录标志 isRecorded = true; }
/** 开始查找附近beacons */ public void onMonitoringStart(View view) { logToDisplay("onMonitoringStart(),startMonitoringBeaconsInRegion"); LogManager.d(TAG, "onMonitoringStart(),startMonitoringBeaconsInRegion"); // 根据编辑框,设置前台扫描周期,default 1.1s onForegroundScanPeriod(null); // 根据编辑框,设置rssi采样周期,即,计算该时间段内的平均RSSI(首末各去掉10%),缺省是20秒(20000毫秒) onSamplePeriod(null); mFindBeacons.openSearcher(); mStart_btn.setEnabled(false); mStop_btn.setEnabled(true); // 记录开始采样时间 startSample = System.currentTimeMillis(); // 设置记录标志 isRecorded = false; }
/** 设置rssi采样周期,即,计算该时间段内的平均RSSI(首末各去掉10%),缺省是20秒(20000毫秒) */ public void onSamplePeriod(View view) { String period_str = SamplePeriod_edit.getText().toString(); SamplePeroid = (int) (Double.parseDouble(period_str) * 1000.0D); FindBeacons.setSampleExpirationMilliseconds(SamplePeroid); }
/** 设置前台扫描周期 */ public void onForegroundScanPeriod(View view) { String period_str = ScanPeriod_edit.getText().toString(); long period = (long) (Double.parseDouble(period_str) * 1000.0D); mFindBeacons.setForegroundScanPeriod(period); }
@Override protected void onCreate(Bundle savedInstanceState) { // 建议使用org.altbeacon.beacon.logging.LogManager.javaLogManager输出日志,altbeacon就是使用这种机制,便于发布版本时,减少输出日志信息。 // 输出所有ERROR(Log.e()), WARN(Log.w()), INFO(Log.i()), DEBUG(Log.d()), VERBOSE(Log.v()) // 对应日志级别由高到低 LogManager.setLogger(Loggers.verboseLogger()); // 全部不输出,在release版本中设置 // LogManager.setLogger(Loggers.empty()); // 输出ERROR(Log.e()), WARN(Log.w()),缺省状态,仅输出错误和警告信息,即输出警告级别以上的日志 // LogManager.setLogger(Loggers.warningLogger()); // 试验日志输出 // LogManager.e(TAG,"Error"); // LogManager.w(TAG,"Warn"); // LogManager.i(TAG,"info"); // LogManager.d(TAG,"debug"); // LogManager.v(TAG,"verbose"); LogManager.d(TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 日志文件 start_logfile = (Button) findViewById(R.id.start_log); end_logfile = (Button) findViewById(R.id.end_log); // 设置SD卡中的日志文件,sd卡根目录/rssiRecord/mydistance.log loghelper = LogcatHelper.getInstance(this, "rssiRecord", "mydistance.log"); // 设置SD卡中的日志文件,sd卡根目录/mydistance.log // loghelper = LogcatHelper.getInstance(this,"","mydistance.log"); // 打印D级以上(包括D,I,W,E,F)的TAG,其它tag不打印 // Logformat = TAG + ":D *:S"; // 打印D级以上的TAG,和LogcatHelper全部,其它tag不打印 // Logformat = TAG + ":D LogcatHelper:V *:S"; // 打印D以上的TAG和RunningAverageRssiFilter,其他tag不打印(*:S) // Logformat = TAG + ":D RunningAverageRssiFilter:D *:S"; // 打印D以上的TAG和RssiDbManager,其他tag不打印(*:S) Logformat = TAG + ":D RssiDbManager:D *:S"; // 打印D以上的FindBeacons,其他tag不打印(*:S) // Logformat = "FindBeacons:D *:S"; // Logformat = "RangedBeacon:V *:S"; // 打印所有日志, priority=V | D | I | W | E ,级别由低到高 // Logformat = ""; // 日志文件 loghelper.start(Logformat); // "开始记录日志"按钮失效,此时已经开始记录日志 start_logfile.setEnabled(false); // 开始/停止监控(查找)beacons mStart_btn = (Button) findViewById(R.id.Mstart); mStop_btn = (Button) findViewById(R.id.Mstop); mStop_btn.setEnabled(false); // 获取FindBeacons唯一实例 mFindBeacons = FindBeacons.getInstance(this); // 设置默认前台扫描周期,default 1.1s ScanPeriod_edit = (EditText) findViewById(R.id.ScanPeriod_edit); ScanPeriod_edit.setText("1.1"); onForegroundScanPeriod(null); // rssi采样周期,即,计算该时间段内的平均RSSI(首末各去掉10%),缺省是20秒(20000毫秒) SamplePeriod_edit = (EditText) findViewById(R.id.SamplePeriod_edit); SamplePeriod_edit.setText("60"); // 在此设定停留时间,默认为1分钟。 onSamplePeriod(null); // 定位参考点名称 reference_point_edit = (EditText) findViewById(R.id.RPname); reference_point_edit.setText(reference_pointPerf + reference_pointNum); // 数据库管理 mRssiDbManager = new RssiDbManager(trainingActivity.this); // 设置获取附近所有beacons的监听对象,在每个扫描周期结束,通过该接口获取找到的所有beacons mFindBeacons.setBeaconsListener(mBeaconsListener); // 查看手机蓝牙是否可用,若当前状态为不可用,则默认调用意图请求打开系统蓝牙 mFindBeacons.checkBLEEnable(); logToDisplay("Mstart,Mstop分别代表查找beacon的开始和结束"); }