Commit b71b72a9 by onuma

#47941 HW連携 アルコールチェッカーから値を取得する処理を追加中3

parent 349e1746
......@@ -1527,4 +1527,5 @@
<string name="msg_location_device_no_allow">端末の設定から位置情報をONにしてください。</string>
<string name="alc_checker_setting">アルコールチェッカー設定</string>
<string name="alcohl_checker">アルコールチェッカー</string>
<string name="ble_connecting">の電源を入れて、電源ボタンを押してください</string>
</resources>
......@@ -105,7 +105,7 @@ public class AlcoholCheckerUtil {
public static final UUID TX_CHARACTERISTIC_UUID = UUID.fromString("442F1572-8A00-9A28-CBE1-E1D4212D53EB"); // Taiyo Yuden Tx Characteristic
private final int MAX_MESSAGE_COUNT = 20; // Number of messages to show in UI
private String rxMessage;
// private String rxMessage;
public static final String ACTION_TX_FINISHED = "com.taiyoyuden.tyapp_terminal.ACTION_TX_FINISHED";
public static final String ACTION_TX_ERROR = "com.taiyoyuden.tyapp_terminal.ACTION_TX_ERROR";
......@@ -138,12 +138,12 @@ public class AlcoholCheckerUtil {
// BLE管理
bleManagerUtil = new BleManagerUtil(context, new BleManagerUtilListener() {
@Override
public void onGetDeviceInfo(String strTemperature) {
Logger.i(TAG,"------------------------------------");
Logger.i(TAG,"onGetDeviceInfo = %s", strTemperature);
Logger.i(TAG,"------------------------------------");
}
// @Override
// public void onGetDeviceInfo(String strTemperature) {
// Logger.i(TAG,"------------------------------------");
// Logger.i(TAG,"onGetDeviceInfo = %s", strTemperature);
// Logger.i(TAG,"------------------------------------");
// }
@Override
public void onGetDeviceInfoFailed(int status) {
......@@ -210,42 +210,19 @@ public class AlcoholCheckerUtil {
if (status == BluetoothGatt.GATT_SUCCESS) {
Logger.i(TAG,"------------------------------------------------------ BluetoothGatt.GATT_SUCCESS");
Logger.i(TAG,"BluetoothGatt.GATT_SUCCESS");
// for (BluetoothGattService svc : gatt.getServices()){
// //Log.d(TAG,svc.getUuid().toString());
// System.out.println("" + svc.getUuid().toString());
// }
//listener.onFugoAction(ACTION_GATT_SERVICES,null, null, null, null);
Logger.i(TAG,"ACTION_GATT_SERVICES");
// Check if the required services are available
// Check if this is a Taiyo Yuden device
TaiyoYudenService = bleManagerUtil.mBluetoothGatt.getService(TY_SERVICE_UUID);
if (TaiyoYudenService == null) {
Logger.i(TAG,"Not a TaiyoYuden device");
//Toast.makeText(getApplicationContext(), "Not a TaiyoYuden device", Toast.LENGTH_SHORT).show();
//mService.disconnectDevice();
Logger.e(TAG,"Not a TaiyoYuden device");
} else {
// Check TX and RX UUIDs
// BluetoothGattCharacteristic RxChar = TaiyoYudenService.getCharacteristic(RX_CHARACTERISTIC_UUID);
// BluetoothGattCharacteristic TxChar = TaiyoYudenService.getCharacteristic(TX_CHARACTERISTIC_UUID);
RxChar = TaiyoYudenService.getCharacteristic(RX_CHARACTERISTIC_UUID);
TxChar = TaiyoYudenService.getCharacteristic(TX_CHARACTERISTIC_UUID);
// if (RxChar == null || TxChar == null) {
if (RxChar == null || TxChar == null) {
// TaiyoYuden device doesn't support Tx/Rx communication
System.out.println("No Tx/Rx");
//Toast.makeText(getApplicationContext(), "Device is not running terminal service", Toast.LENGTH_SHORT).show();
Logger.e(TAG,"No Tx/Rx");
} else {
System.out.println("Terminal Start...............................");
// @Info
//mListener.onStartFugo();
//Intent fugosmartdemo = new Intent(getApplicationContext(), FugoSmartDemo.class);
// Stop Bluetooth scanning while the terminal activity is open
//mService.stopScan(mLeScanCallback);
// Start terminal application
//startActivityForResult(fugosmartdemo, REQUEST_OPEN_TERMINAL);
gi_status = F_BLE_COM_INIT;
//((TextView)findViewById(R.id.txtStatus)).setText("F_BLE_COM_INIT");
gi_rxlength = 0;
gf_result_flg = false;
......@@ -262,8 +239,6 @@ public class AlcoholCheckerUtil {
bleManagerUtil.readPhyConnection();
rxMessage = "";
bleManagerUtil.mBluetoothGatt.setCharacteristicNotification(NotificationChar, true);
BluetoothGattDescriptor notification_descriptor = NotificationChar.getDescriptor(CCCD);
notification_descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
......@@ -274,7 +249,7 @@ public class AlcoholCheckerUtil {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
timer();
timerStart();
}
});
thread.start();
......@@ -282,9 +257,8 @@ public class AlcoholCheckerUtil {
}
listener.onServicesDiscovered(status);
//mIsBluetoothEnable = true;
} else {
//System.out.println("onServicesDiscovered received: " + status);
Logger.d(TAG,"");
}
}
......@@ -318,22 +292,26 @@ public class AlcoholCheckerUtil {
if (!bleManagerUtil.startDeviceInfo()) {
return false;
}
// 状態管理タイマースタート
// alcoholCheckerTimerTask = new AlcoholCheckerTimerTask(context, listener);
// Timer timer = new Timer(true);
// timer.schedule(alcoholCheckerTimerTask, 0, 1000);
//timerStart();
return true;
}
private void timer() {
/**
* アルコールチェッカーを監視するタイマーを開始する
*/
private void timerStart() {
if (alcoholCheckerTimerTask != null) {
alcoholCheckerTimerTask.cancel();
alcoholCheckerTimerTask = null;
}
alcoholCheckerTimerTask = new AlcoholCheckerTimerTask(this, listener);
Timer timer = new Timer(true);
timer.schedule(alcoholCheckerTimerTask, 0, 1000);
}
private void init() {
rxMessage = "";
//rxMessage = "";
bleManagerUtil.mBluetoothGatt.setCharacteristicNotification(NotificationChar, true);
BluetoothGattDescriptor notification_descriptor = NotificationChar.getDescriptor(CCCD);
......@@ -350,6 +328,10 @@ public class AlcoholCheckerUtil {
// 切断
public void disconnect(boolean listenerFlg) {
bleManagerUtil.disconnect(listenerFlg);
if (alcoholCheckerTimerTask != null) {
alcoholCheckerTimerTask.cancel();
alcoholCheckerTimerTask = null;
}
}
......@@ -787,7 +769,8 @@ public class AlcoholCheckerUtil {
str_msg += "[mg/L]";
//((TextView)findViewById(R.id.TBV_Calc)).setText(str_msg); // @
listener.onUpdateTBVCalc(str_msg + " 0x0C 測定結果表示状態");
//listener.onUpdateTBVCalc(str_msg + " 0x0C 測定結果表示状態");
listener.onGetDeviceInfo(str_msg);
} else {
// Error
......
......@@ -43,8 +43,8 @@ public class BleManagerUtil {
// 定数(Bluetooth LE Gatt UUID)
// Private Service
private UUID UUID_SERVICE_PRIVATE;
private UUID UUID_CHARACTERISTIC_PRIVATE;
//private UUID UUID_SERVICE_PRIVATE;
//private UUID UUID_CHARACTERISTIC_PRIVATE;
// for Notification
private UUID UUID_NOTIFY;
......@@ -127,6 +127,7 @@ public class BleManagerUtil {
}
mBluetoothGatt.requestConnectionPriority(BluetoothGatt.CONNECTION_PRIORITY_HIGH);
// アルコールチェッカー
if (mBleConnectDeviceType == Constant.DeviceType.alcoholChecker) {
mListener.onServicesDiscovered(status);
return;
......@@ -147,32 +148,31 @@ public class BleManagerUtil {
}
// プライベートサービス
if(UUID_SERVICE_PRIVATE.equals(service.getUuid())) {
// 最初の読み取り
readCharacteristic(UUID_SERVICE_PRIVATE, UUID_CHARACTERISTIC_PRIVATE);
runOnUiThread( new Runnable() {
@Override
public void run() {
// 操作可能
mListener.onConnectionState(status);
}
});
continue;
}
// if(UUID_SERVICE_PRIVATE.equals(service.getUuid())) {
// // 最初の読み取り
// readCharacteristic(UUID_SERVICE_PRIVATE, UUID_CHARACTERISTIC_PRIVATE);
//
// runOnUiThread( new Runnable() {
// @Override
// public void run() {
// // 操作可能
// mListener.onConnectionState(status);
// }
// });
// continue;
// }
}
}
// キャラクタリスティックが読み込まれたときの処理
@Override
public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status ) {
Logger.i(TAG,"onCharacteristicChanged");
if( BluetoothGatt.GATT_SUCCESS != status ) {
return;
}
if( UUID_CHARACTERISTIC_PRIVATE.equals(characteristic.getUuid())) {
// @Override
// public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status ) {
// Logger.i(TAG,"onCharacteristicChanged");
// if( BluetoothGatt.GATT_SUCCESS != status ) {
// return;
// }
// if( UUID_CHARACTERISTIC_PRIVATE.equals(characteristic.getUuid())) {
// final String strTemperature = byteToString(characteristic.getValue());
// runOnUiThread( new Runnable() {
// @Override
// public void run() {
......@@ -181,12 +181,11 @@ public class BleManagerUtil {
//// mListener.onGetDeviceInfo(strTemperature);
// }
// });
// 通知設定
setCharacteristicNotification(UUID_SERVICE_PRIVATE, UUID_CHARACTERISTIC_PRIVATE, true);
return;
}
}
// // 通知設定
// setCharacteristicNotification(UUID_SERVICE_PRIVATE, UUID_CHARACTERISTIC_PRIVATE, true);
// return;
// }
// }
// キャラクタリスティック変更が通知されたときの処理
@Override
......@@ -196,22 +195,22 @@ public class BleManagerUtil {
mListener.onCharacteristicChanged(gatt, characteristic);
return;
}
if( UUID_CHARACTERISTIC_PRIVATE.equals( characteristic.getUuid() ) ) {
final String strTemperature = byteToString(characteristic.getValue());
runOnUiThread( new Runnable() {
@Override
public void run() {
// 複数呼ばれるため、mBluetoothGattがnullの場合、以下の処理を行わない
if(mBluetoothGatt == null) {
return;
}
// 芯温計の温度を渡す。
mListener.onGetDeviceInfo(strTemperature);
}
});
return;
}
// if( UUID_CHARACTERISTIC_PRIVATE.equals( characteristic.getUuid() ) ) {
// final String strTemperature = byteToString(characteristic.getValue());
//
// runOnUiThread( new Runnable() {
// @Override
// public void run() {
// // 複数呼ばれるため、mBluetoothGattがnullの場合、以下の処理を行わない
// if(mBluetoothGatt == null) {
// return;
// }
// // 芯温計の温度を渡す。
// mListener.onGetDeviceInfo(strTemperature);
// }
// });
// return;
// }
}
};
......@@ -396,9 +395,9 @@ public class BleManagerUtil {
*/
public boolean startDeviceInfo() {
// Bluetoothアダプタの取得
BluetoothManager bluetoothManager = (BluetoothManager) mContext.getSystemService( Context.BLUETOOTH_SERVICE );
if (bluetoothManager != null) {
mBluetoothAdapter = bluetoothManager.getAdapter();
BluetoothManager bluetoothManager2 = (BluetoothManager) mContext.getSystemService( Context.BLUETOOTH_SERVICE );
if (bluetoothManager2 != null) {
mBluetoothAdapter = bluetoothManager2.getAdapter();
if( mBluetoothAdapter == null ) { // Android端末がBluetoothをサポートしていない
Toast.makeText( mContext, R.string.bluetooth_is_not_supported, Toast.LENGTH_SHORT ).show();
return false;
......@@ -412,15 +411,15 @@ public class BleManagerUtil {
// UUIDセット
private void setUUID() {
if (mBleConnectDeviceType == Constant.DeviceType.centerThermomete) {
// 中心温度計のUUIDセット
UUID_SERVICE_PRIVATE = UUID.fromString("05fd8c58-9d23-11e7-abc4-cec278b6b50a");
UUID_CHARACTERISTIC_PRIVATE = UUID.fromString("05fd8f5a-9d23-11e7-abc4-cec278b6b50a");
} else if (mBleConnectDeviceType == Constant.DeviceType.radiationThermomete) {
// 放射温度計のUUIDセット
UUID_SERVICE_PRIVATE = UUID.fromString("462026f6-cfe1-11e7-abc4-cec278b6b50a");
UUID_CHARACTERISTIC_PRIVATE = UUID.fromString("46202b74-cfe1-11e7-abc4-cec278b6b50a");
}
// if (mBleConnectDeviceType == Constant.DeviceType.centerThermomete) {
// // 中心温度計のUUIDセット
// UUID_SERVICE_PRIVATE = UUID.fromString("05fd8c58-9d23-11e7-abc4-cec278b6b50a");
// UUID_CHARACTERISTIC_PRIVATE = UUID.fromString("05fd8f5a-9d23-11e7-abc4-cec278b6b50a");
// } else if (mBleConnectDeviceType == Constant.DeviceType.radiationThermomete) {
// // 放射温度計のUUIDセット
// UUID_SERVICE_PRIVATE = UUID.fromString("462026f6-cfe1-11e7-abc4-cec278b6b50a");
// UUID_CHARACTERISTIC_PRIVATE = UUID.fromString("46202b74-cfe1-11e7-abc4-cec278b6b50a");
// }
}
/**
......
......@@ -4,7 +4,7 @@ import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCharacteristic;
public interface BleManagerUtilListener {
void onGetDeviceInfo(String strTemperature); // ディバイスから渡す情報
// void onGetDeviceInfo(String strTemperature); // ディバイスから渡す情報
void onGetDeviceInfoFailed(int status); // ディバイスと接続失敗時の情報渡す。
void onConnectionState(int status); // ディバイスと接続された時情報渡す。
void onDisConnectionState(); // ディバイスと切断時
......
......@@ -21,6 +21,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
......@@ -184,8 +185,15 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
//待ち状態の時画面に表示するダイアログ
protected ABookAlertDialog mWaitingDialog;
// 計測用ダイアログ
private ABookAlertDialog mWaitMeasureDialog;
// 息を吹きかけてください
private ABookAlertDialog mMeasureDialog;
// デバイスタイプ 0 アルコールチェッカー
private int mDeviceType;
// 設問ID
private String mQid;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
......@@ -320,7 +328,7 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
Logger.i(TAG,"onUpdateTBVCalc = %s", text);
Logger.i(TAG,"------------------------------------");
alcoholCheckerUtil.sendMessage(AlcoholCheckerUtil.F_BLE_COM_FC_COMMAND);
//alcoholCheckerUtil.sendMessage(AlcoholCheckerUtil.F_BLE_COM_FC_COMMAND);
}
@Override
......@@ -350,9 +358,43 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
Logger.i(TAG,"onServicesDiscovered = %s", status);
Logger.i(TAG,"------------------------------------");
Logger.i(TAG,"ACTION_GATT_SERVICES");
mIsConnection = true;
runOnUiThread(new Runnable() {
@Override
public void run() {
//mWaitingDialog.setMessage("接続しましたボタンをおしてください");
//Button btn = mWaitingDialog.getButton(DialogInterface.BUTTON_POSITIVE);
//btn.setText("うんこ");
if (mWaitingDialog != null) {
mWaitingDialog.dismiss();
mWaitingDialog = null;
}
showWaitMeasureDialog("aaaaaa","aaaaaaaaaaaaaaaaaaaaaaaaaaa");
}
});
}
@Override
public void onGetDeviceInfo(String alcohol) {
/// 測定値
if (mWaitingDialog != null) {
mWaitingDialog.dismiss();
mWaitingDialog = null;
}
if (mWaitMeasureDialog != null) {
mWaitMeasureDialog.dismiss();
mWaitMeasureDialog = null;
}
if (mMeasureDialog != null) {
mMeasureDialog.dismiss();
mMeasureDialog = null;
}
}
});
if (!alcoholCheckerUtil.startGetDeviceInfo()) {
// 端末がBluetoothをサポートしていないなどの理由で、アルコールチェッカーが使えない
Logger.e(TAG,"bluetooth damedame.");
......@@ -1084,17 +1126,17 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
//bleManagerUtil.disconnect(true);
}
private void alcoholCheckerUtilbleManagerDisconnect(boolean disconnect) {
Logger.d(TAG,"-------------------------------------------------");
Logger.d(TAG, "bleManagerDisconnect = " + disconnect);
Logger.d(TAG,"-------------------------------------------------");
if (disconnect){
mIsConnection = false;
alcoholCheckerUtil.disconnect(true);
} else {
// 何もしない
}
}
// private void alcoholCheckerUtilbleManagerDisconnect(boolean disconnect) {
// Logger.d(TAG,"-------------------------------------------------");
// Logger.d(TAG, "bleManagerDisconnect = " + disconnect);
// Logger.d(TAG,"-------------------------------------------------");
// if (disconnect){
// mIsConnection = false;
// alcoholCheckerUtil.disconnect(true);
// } else {
// // 何もしない
// }
// }
/**
* 各デバイスから値を正常に取得された場合、HTML側にコールする
......@@ -1108,8 +1150,10 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
Logger.i(TAG, "successAfterAbookCheckAip JSON [%s]", responseJson.toString());
}
private int status = 0;
/**
* 中心温度計、置くだけセンサー接続の待機、TR41温度センサースキャン中、ダイヤログ表示
* 接続待ち
* @param title タイトル
* @param message 内容
*/
......@@ -1117,53 +1161,20 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
Logger.i(TAG,"-------------------------------------------------");
Logger.i(TAG,"showWaitingDialog");
Logger.i(TAG,"-------------------------------------------------");
//待機状態のダイヤログ表示
mWaitingDialog = AlertDialogUtil.createAlertDialog(this, title);
mWaitingDialog.setMessage(message);
mWaitingDialog.setButton(DialogInterface.BUTTON_POSITIVE, getResources().getString(R.string.pairing_search_stop), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Logger.i(TAG, "waiting Dialog stop click : " + mDeviceType);
switch (mDeviceType) {
case Constant.DeviceType.centerThermomete:
case Constant.DeviceType.radiationThermomete:
Logger.i(TAG,"-------------------------------------------------");
Logger.i(TAG,"放射・中心温度計 アルコールチェッカー接続待中止");
Logger.i(TAG,"-------------------------------------------------");
alcoholCheckerUtilbleManagerDisconnect(true); // 放射温度計、中心温度計接続切断
break;
case Constant.DeviceType.alcoholChecker:
Logger.i(TAG,"-------------------------------------------------");
Logger.i(TAG,"アルコールチェッカー接続待中止");
Logger.i(TAG,"-------------------------------------------------");
alcoholCheckerUtilbleManagerDisconnect(true);
break;
// case Constant.DeviceType.sensor:
// stopOkudakeBeaconScan(); // 置くだけセンサースキャン中止
// break;
// case Constant.DeviceType.sppBluetoothMachine:
// disConnectSppBluetooth();
// // 接続を切るのに5秒ぐらい必要なので、プログレスバーを表示して5秒後に閉じる
// showProgressPopup(getString(R.string.msg_common_processing));
// handler.postDelayed( new Runnable() {
// @Override
// public void run() {
// closeProgressPopup();
// }
// }, 5000 );
// break;
// case Constant.DeviceType.nfc: // nfc
// // Activityがバックグラウンドになったときは、受け取らない
// mNfcAdapter.disableForegroundDispatch(ABVCheckContentViewActivity.this);
// break;
// case Constant.DeviceType.tr41: // TR41温度センサー
// Logger.d(TAG,"-------------------------------------------------");
// Logger.d(TAG,"TR41温度センサー スキャン中止");
// Logger.d(TAG,"-------------------------------------------------");
// stopTR41BeaconScan();
// break;
if (mDeviceType == Constant.DeviceType.alcoholChecker) {
Logger.i(TAG, "-------------------------------------------------");
Logger.i(TAG, "アルコールチェッカー接続待中止");
Logger.i(TAG, "-------------------------------------------------");
alcoholCheckerUtil.disconnect(true);
}
successAfterAbookCheckAip("");
mWaitingDialog.dismiss();
mWaitingDialog = null;
}
});
......@@ -1171,6 +1182,99 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
}
/**
* 接続待ち
* @param title タイトル
* @param message 内容
*/
private void showWaitMeasureDialog(String title, String message) {
Logger.i(TAG,"-------------------------------------------------");
Logger.i(TAG,"showWaitMeasureDialog");
Logger.i(TAG,"-------------------------------------------------");
mWaitMeasureDialog = AlertDialogUtil.createAlertDialog(this, title);
mWaitMeasureDialog.setMessage("接続しました。ボタンをおしてください");
mWaitMeasureDialog.setButton(DialogInterface.BUTTON_POSITIVE, "測定開始", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Logger.i(TAG, "waiting mWaitMeasureDialog stop click : " + mDeviceType);
runOnUiThread(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
//showMeasureDialog("banban","banban");
//alcoholCheckerUtil.sendMessage(AlcoholCheckerUtil.F_BLE_COM_FC_COMMAND);
}
});
showMeasureDialog("banban","banban");
alcoholCheckerUtil.sendMessage(AlcoholCheckerUtil.F_BLE_COM_FC_COMMAND);
mWaitMeasureDialog.dismiss();
mWaitMeasureDialog = null;
}
});
}
});
mWaitMeasureDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "キャンセル", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Logger.i(TAG, "waiting mWaitMeasureDialog stop click : " + mDeviceType);
alcoholCheckerUtil.disconnect(true);
successAfterAbookCheckAip("");
mWaitMeasureDialog.dismiss();
mWaitMeasureDialog = null;
}
});
mWaitMeasureDialog.show();
}
/**
* 接続待ち
* @param title タイトル
* @param message 内容
*/
private void showMeasureDialog(String title, String message) {
Logger.i(TAG,"-------------------------------------------------");
Logger.i(TAG,"showMeasureDialog");
Logger.i(TAG,"-------------------------------------------------");
mMeasureDialog = AlertDialogUtil.createAlertDialog(this, title);
mMeasureDialog.setMessage("息を吹きかけてください");
mMeasureDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "測定中止", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Logger.i(TAG, "waiting Dialog stop click : " + mDeviceType);
if (mDeviceType == Constant.DeviceType.alcoholChecker) {
Logger.i(TAG, "-------------------------------------------------");
Logger.i(TAG, "測定中止");
Logger.i(TAG, "-------------------------------------------------");
}
alcoholCheckerUtil.disconnect(true);
successAfterAbookCheckAip("");
mMeasureDialog.dismiss();
mMeasureDialog = null;
}
});
// mMeasureDialog.setButton(DialogInterface.BUTTON_POSITIVE, "測定中止", new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
// Logger.i(TAG, "waiting Dialog stop click : " + mDeviceType);
// if (mDeviceType == Constant.DeviceType.alcoholChecker) {
//
// alcoholCheckerUtil.disconnect(true);
// }
// successAfterAbookCheckAip("");
// mMeasureDialog.dismiss();
// mMeasureDialog = null;
// }
// });
mMeasureDialog.show();
}
/**
* 各デバイスからエラー(接続不能など)発生した場合、HTML側にコールする
* @param errorMessage 各種デバイスから取得した値
*/
......@@ -1178,32 +1282,33 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
afterABookCheckApi(mCmd, "", 1, errorMessage, null);
}
/**
* Android端末のBluetooth機能の有効化要求
* @return true:bluetooth ON, false:bluetooth OFF
* アルコールチェッカー処理
* @param abookCheckParam
*/
private boolean requestBluetoothFeature(int requestCode) {
if(alcoholCheckerUtil.bleManagerUtil.mBluetoothAdapter.isEnabled()) {
return true;
}
// デバイスのBluetooth機能が有効になっていないときは、有効化要求(ダイアログ表示)
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, requestCode);
return false;
private void getDeviceInfo(Map<String, String> abookCheckParam) {
Logger.d(TAG,"-------------------------------------------------");
Logger.d(TAG,"getDeviceInfo");
Logger.d(TAG,"-------------------------------------------------");
mDeviceType = Constant.DeviceType.alcoholChecker;
mQid = "1";
connectToAlcholChecker();
}
/**
* BLEディバイスのアルコールチェッカーの情報取得
*/
private void initGetDeviceInfo() {
private void connectToAlcholChecker() {
if (requestBluetoothFeature(REQUEST_CODE_ENABLEBLUETOOTH_ALCOHL_CHECKER)) { //端末のBluetooth設定を確認
String deviceAddress = getABVUIDataCache().getPairingBluetoothDeviceAddress(Constant.DeviceType.alcoholChecker);
if (StringUtil.isNullOrEmpty(deviceAddress)) {
// 登録されている中心温度計がない場合
// 登録されているアルコールチェッカーが無い場合はエラー
errorAfterAbookCheckAip(getString(R.string.msg_pairing_device_no_info));
return; // 以下の処理にかからないようにreturnする
return;
}
if (mIsConnection) {
Logger.d(TAG,"-------------------------------------------------");
......@@ -1211,12 +1316,11 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
Logger.d(TAG,"-------------------------------------------------");
String message = String.format(getString(R.string.msg_ble_connect_success), getString(R.string.alcohl_checker));
showWaitingDialog(getString(R.string.alcohl_checker),message);
} else {
Logger.d(TAG,"-------------------------------------------------");
Logger.d(TAG, "isConnection = false");
Logger.d(TAG,"-------------------------------------------------");
// 登録されている中心温度計がある
// 登録されているアルコールチェッカーがある
showWaitingDialog(getString(R.string.alcohl_checker), getString(R.string.ble_connecting));
// 接続
alcoholCheckerUtil.connect(Constant.DeviceType.alcoholChecker, deviceAddress);
......@@ -1224,17 +1328,18 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
}
}
private int mDeviceType;
private String mQid;
private void getDeviceInfo(Map<String, String> abookCheckParam) {
Logger.d(TAG,"-------------------------------------------------");
Logger.d(TAG,"getDeviceInfo");
Logger.d(TAG,"-------------------------------------------------");
mDeviceType = Constant.DeviceType.alcoholChecker;
mQid = "1";
initGetDeviceInfo();
/**
* Android端末のBluetooth機能の有効化要求
* @return true:bluetooth ON, false:bluetooth OFF
*/
private boolean requestBluetoothFeature(int requestCode) {
if(alcoholCheckerUtil.bleManagerUtil.mBluetoothAdapter.isEnabled()) {
return true;
}
// デバイスのBluetooth機能が有効になっていないときは、有効化要求(ダイアログ表示)
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, requestCode);
return false;
}
/**
......@@ -1254,12 +1359,6 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
if (abookCheckParam.containsKey(ABookKeys.TASK_KEY)) {
mTaskKey = abookCheckParam.get(ABookKeys.TASK_KEY);
}
// アルコールチェッカーテスト
if (mCmd.equals(ABookKeys.CMD_CANCEL_TASK_REPORT)) {
//mCmd = ABookKeys.CMD_GET_DEVICE_INFO;
getDeviceInfo(abookCheckParam);
return;
}
int taskReportLevel = 0; // 作業報告レベル(0:報告、1:報告(回答)、2:報告(回答))
if (abookCheckParam.containsKey(ABookKeys.TASK_REPORT_LEVEL)) {
......@@ -1532,6 +1631,9 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
Logger.i(TAG,"save taskKey = " + abookCheckParam.get(ABookKeys.TASK_KEY));
Logger.i(TAG,"save userData = " + abookCheckParam.get(ABookKeys.USER_DATA));
saveUserDataKey(abookCheckParam.get(ABookKeys.TASK_KEY), abookCheckParam.get(ABookKeys.USER_DATA));
} else if (mCmd.equals(ABookKeys.CMD_GET_DEVICE_INFO)) {
Logger.i(TAG,"getDeviceInfo");
getDeviceInfo(abookCheckParam);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment