Commit 669286a2 by Kim Jinsung

Merge branch 'contract/sato/1.0.0_32917' into contract/sato/1.0.0

# Conflicts:
#	ABVJE_Res_Default_Android/res/values-ja/strings.xml
#	ABVJE_Res_Default_Android/res/values-ko/strings.xml
#	ABVJE_Res_Default_Android/res/values/strings.xml
#	ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/common/activity/ABVContentViewActivity.java
parents f84f136a fa78d283
...@@ -1397,11 +1397,14 @@ ...@@ -1397,11 +1397,14 @@
<string name="thermometer">芯温計</string> <string name="thermometer">芯温計</string>
<string name="ble_is_not_supported">BLEを支援しません。</string> <string name="ble_is_not_supported">BLEを支援しません。</string>
<string name="bluetooth_is_not_supported">ブルートゥースを支援しません。</string> <string name="bluetooth_is_not_supported">ブルートゥースを支援しません。</string>
<string name="bluetooth_is_not_working">ブルートゥースが機能しません</string> <string name="bluetooth_is_not_working">ブルートゥース機能がオンになっているか確認してください</string>
<string name="msg_connected_bluetooth">%sに接続されました。</string> <string name="msg_connected_bluetooth">%sに接続されました。</string>
<string name="msg_ble_not_connect">接続が停止しました。</string> <string name="msg_ble_not_connect">接続が停止しました。</string>
<string name="msg_ble_connect_error">%sと接続されていません。\n%sと接続状態を設定画面の機器連携から確認してください。</string> <string name="msg_ble_connect_error">%sと接続されていません。\n%sと接続状態を設定画面の機器連携から確認してください。</string>
<string name="msg_permission_dialog_bluetooth">ブルートゥース利用権限が必要です。\nアプリ設定画面へ遷移します。</string> <string name="msg_permission_dialog_bluetooth">ブルートゥース利用権限が必要です。\nアプリ設定画面へ遷移します。</string>
<string name="sensor">センサー</string> <string name="sensor">センサー</string>
<string name="barcode">バーコード</string> <string name="barcode">バーコード</string>
<string name="msg_device_search">ディバイスを検索中</string>
<string name="msg_device_connecting">ディバイスと接続中</string>
<string name="msg_no_device_info">登録された機器情報がありません。\n設定画面の機器連携から確認してください。</string>
</resources> </resources>
...@@ -1411,4 +1411,7 @@ ...@@ -1411,4 +1411,7 @@
<string name="msg_permission_dialog_bluetooth">블루투스이용권한이 필요합니다.\n설정화면으로 이동합니다.</string> <string name="msg_permission_dialog_bluetooth">블루투스이용권한이 필요합니다.\n설정화면으로 이동합니다.</string>
<string name="sensor">센서</string> <string name="sensor">센서</string>
<string name="barcode">바코드</string> <string name="barcode">바코드</string>
<string name="msg_device_search">기기를 검색중\</string>
<string name="msg_device_connecting">기기와 접속중</string>
<string name="msg_no_device_info">등록된 기기정보가 없습니다.\n설정화면의 기기연결에서 확인해주세요.</string>
</resources> </resources>
\ No newline at end of file
...@@ -1406,8 +1406,11 @@ ...@@ -1406,8 +1406,11 @@
<string name="bluetooth_is_not_working">Bluetooth is not working.</string> <string name="bluetooth_is_not_working">Bluetooth is not working.</string>
<string name="msg_connected_bluetooth">Connected to %s</string> <string name="msg_connected_bluetooth">Connected to %s</string>
<string name="msg_ble_not_connect">The connection has stopped.</string> <string name="msg_ble_not_connect">The connection has stopped.</string>
<string name="msg_ble_connect_error">Not connected with% %s. \nCheck %s and connection status from the device linkage on the setting screen.</string> <string name="msg_ble_connect_error">Not connected with %s. \nCheck %s and connection status from the device linkage on the setting screen.</string>
<string name="msg_permission_dialog_bluetooth">You need Bluetooth access authority. \nIt changes to the application setting.</string> <string name="msg_permission_dialog_bluetooth">You need Bluetooth access authority. \nIt changes to the application setting.</string>
<string name="sensor">Sensor</string> <string name="sensor">Sensor</string>
<string name="barcode">Barcode</string> <string name="barcode">Barcode</string>
<string name="msg_device_search">Searching Device</string>
<string name="msg_device_connecting">Connecting Device</string>
<string name="msg_no_device_info">There is no registered device information. \nPlease confirm from the device cooperation of the setting screen.</string>
</resources> </resources>
\ No newline at end of file
...@@ -21,15 +21,14 @@ ...@@ -21,15 +21,14 @@
android:layout_height="50dp"> android:layout_height="50dp">
<TextView <TextView
android:id="@+id/tv_toolbar_title" android:id="@+id/device_toolbar_title"
style="@style/DialogToolBarTitle" style="@style/DialogToolBarTitle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:text="@string/set_pairing"
android:textColor="@color/edt_text" android:textColor="@color/edt_text"
android:textSize="@dimen/opeartion_title_text_size" /> android:textSize="20sp" />
<ImageButton <ImageButton
android:id="@+id/close_btn" android:id="@+id/close_btn"
...@@ -40,6 +39,23 @@ ...@@ -40,6 +39,23 @@
android:background="@drawable/ic_operation_close" android:background="@drawable/ic_operation_close"
android:onClick="onClickCloseView" /> android:onClick="onClickCloseView" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true">
<Button
android:id="@+id/btn_reload"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginRight="5dp"
android:background="@drawable/ic_reload_list" />
</LinearLayout>
</RelativeLayout> </RelativeLayout>
<LinearLayout <LinearLayout
...@@ -51,49 +67,6 @@ ...@@ -51,49 +67,6 @@
android:layout_weight="1" android:layout_weight="1"
android:orientation="vertical"> android:orientation="vertical">
<RelativeLayout
android:id="@+id/toolbar2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="50dp"
android:visibility="visible">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:gravity="left"
android:text="@string/thermometer"
android:textSize="20sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true">
<Button
android:id="@+id/scan_button"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginRight="5dp"
android:text="@string/scan" />
<Button
android:id="@+id/stop_button"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginRight="5dp"
android:text="@string/stop" />
</LinearLayout>
</RelativeLayout>
<View <View
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="2dp" android:layout_height="2dp"
......
...@@ -18,8 +18,12 @@ import android.bluetooth.BluetoothGattService; ...@@ -18,8 +18,12 @@ import android.bluetooth.BluetoothGattService;
import android.bluetooth.BluetoothManager; import android.bluetooth.BluetoothManager;
import android.bluetooth.BluetoothProfile; import android.bluetooth.BluetoothProfile;
import android.content.Context; import android.content.Context;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.widget.Toast; import android.widget.Toast;
import static android.bluetooth.BluetoothDevice.TRANSPORT_LE;
import static org.chromium.base.ThreadUtils.runOnUiThread; import static org.chromium.base.ThreadUtils.runOnUiThread;
public class BleManagerUtil { public class BleManagerUtil {
...@@ -53,6 +57,7 @@ public class BleManagerUtil { ...@@ -53,6 +57,7 @@ public class BleManagerUtil {
// 接続状態変更(connectGatt()の結果として呼ばれる。) // 接続状態変更(connectGatt()の結果として呼ばれる。)
@Override @Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState ) { public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState ) {
super.onConnectionStateChange(gatt, status, newState);
// if( BluetoothGatt.GATT_SUCCESS != status ) { // if( BluetoothGatt.GATT_SUCCESS != status ) {
// runOnUiThread( new Runnable() { // runOnUiThread( new Runnable() {
// public void run() { // public void run() {
...@@ -61,6 +66,17 @@ public class BleManagerUtil { ...@@ -61,6 +66,17 @@ public class BleManagerUtil {
// }); // });
// return; // return;
// } // }
Logger.d("GATT_ message : [ " + status);
// ディバイスと接続されていない場合のメッセージコード:133, 62
// ディバイスと接続が切れた場合のメッセージコード:19
if (status == 133 || status == 62) { // 接続失敗
runOnUiThread( new Runnable() {
public void run() {
listener.onConnectionError();
}
});
return;
}
if( status == BluetoothGatt.GATT_SUCCESS && BluetoothProfile.STATE_CONNECTED == newState ) { if( status == BluetoothGatt.GATT_SUCCESS && BluetoothProfile.STATE_CONNECTED == newState ) {
// 接続完了 // 接続完了
...@@ -81,17 +97,19 @@ public class BleManagerUtil { ...@@ -81,17 +97,19 @@ public class BleManagerUtil {
} }
if( BluetoothProfile.STATE_DISCONNECTED == newState ) { // 切断完了(接続可能範囲から外れて切断された) if( BluetoothProfile.STATE_DISCONNECTED == newState ) { // 切断完了(接続可能範囲から外れて切断された)
// 接続可能範囲に入ったら自動接続するために、mBluetoothGatt.connect()を呼び出す。 // 接続可能範囲に入ったら自動接続することが必要場合、mBluetoothGatt.connect()を呼び出す。
mBluetoothGatt.connect(); // mBluetoothGatt.connect();
// 切断が発生する場合、Bluetoothと接続を切断する。
disconnect();
runOnUiThread( new Runnable() { runOnUiThread( new Runnable() {
public void run() { public void run() {
// 切断トーストメッセージを表示する。 // 切断トーストメッセージを表示する。
listener.onDisConnectionState(); // listener.onDisConnectionState();
} }
} ); } );
return; return;
} }
super.onConnectionStateChange(gatt, status, newState);
} }
// サービス検索が完了したときの処理(mBluetoothGatt.discoverServices()の結果として呼ばれる。) // サービス検索が完了したときの処理(mBluetoothGatt.discoverServices()の結果として呼ばれる。)
...@@ -195,6 +213,7 @@ public class BleManagerUtil { ...@@ -195,6 +213,7 @@ public class BleManagerUtil {
void onGetDeviceInfoFailed(); // ディバイスと接続失敗時の情報渡す。 void onGetDeviceInfoFailed(); // ディバイスと接続失敗時の情報渡す。
void onConnectionState(); // ディバイスと接続された時情報渡す。 void onConnectionState(); // ディバイスと接続された時情報渡す。
void onDisConnectionState(); // ディバイスと切断時 void onDisConnectionState(); // ディバイスと切断時
void onConnectionError(); // ディバイス接続エラー
} }
// 接続 // 接続
...@@ -209,7 +228,14 @@ public class BleManagerUtil { ...@@ -209,7 +228,14 @@ public class BleManagerUtil {
// mBluetoothGattのサービスと接続 // mBluetoothGattのサービスと接続
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice( mDeviceAddress ); BluetoothDevice device = mBluetoothAdapter.getRemoteDevice( mDeviceAddress );
mBluetoothGatt = device.connectGatt( context, false, mGattcallback );
// GATT BLEを利用する時Androidのバージョン「23」をチェックしてGATTと接続する。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mBluetoothGatt = device.connectGatt( context, false, mGattcallback, TRANSPORT_LE);
} else {
mBluetoothGatt = device.connectGatt( context, false, mGattcallback );
}
} }
// 切断 // 切断
...@@ -273,20 +299,10 @@ public class BleManagerUtil { ...@@ -273,20 +299,10 @@ public class BleManagerUtil {
// Bluetoothアダプタの取得処理 // Bluetoothアダプタの取得処理
public void startDeviceInfo() { public void startDeviceInfo() {
// disconnect();
// bluetoothManager = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE);
// // Android端末がBLEをサポートしてるかの確認
// if( !context.getPackageManager().hasSystemFeature( PackageManager.FEATURE_BLUETOOTH_LE ) ) {
// Toast.makeText( context, R.string.ble_is_not_supported, Toast.LENGTH_SHORT ).show();
// return;
// }
// Bluetoothアダプタの取得 // Bluetoothアダプタの取得
BluetoothManager bluetoothManager = (BluetoothManager) context.getSystemService( Context.BLUETOOTH_SERVICE ); BluetoothManager bluetoothManager = (BluetoothManager) context.getSystemService( Context.BLUETOOTH_SERVICE );
mBluetoothAdapter = bluetoothManager.getAdapter(); mBluetoothAdapter = bluetoothManager.getAdapter();
if( null == mBluetoothAdapter ) if( null == mBluetoothAdapter ) { // Android端末がBluetoothをサポートしていない
{ // Android端末がBluetoothをサポートしていない
Toast.makeText( context, R.string.bluetooth_is_not_supported, Toast.LENGTH_SHORT ).show(); Toast.makeText( context, R.string.bluetooth_is_not_supported, Toast.LENGTH_SHORT ).show();
return; return;
} }
......
...@@ -2,26 +2,17 @@ package jp.agentec.abook.abv.ui.common.activity; ...@@ -2,26 +2,17 @@ package jp.agentec.abook.abv.ui.common.activity;
import android.app.Activity; import android.app.Activity;
import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCallback;
import android.bluetooth.BluetoothGattCharacteristic;
import android.bluetooth.BluetoothGattDescriptor;
import android.bluetooth.BluetoothGattService;
import android.bluetooth.BluetoothManager;
import android.bluetooth.BluetoothProfile;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.database.Cursor; import android.database.Cursor;
import android.location.Location; import android.location.Location;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.provider.MediaStore; import android.provider.MediaStore;
import android.util.Pair;
import android.view.Gravity; import android.view.Gravity;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.MotionEvent; import android.view.MotionEvent;
...@@ -40,17 +31,13 @@ import org.json.adf.JSONObject; ...@@ -40,17 +31,13 @@ import org.json.adf.JSONObject;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import jp.agentec.abook.abv.bl.acms.client.json.content.ContentJSON;
import jp.agentec.abook.abv.bl.acms.type.OperationType; import jp.agentec.abook.abv.bl.acms.type.OperationType;
import jp.agentec.abook.abv.bl.common.ABVEnvironment; import jp.agentec.abook.abv.bl.common.ABVEnvironment;
import jp.agentec.abook.abv.bl.common.Callback; import jp.agentec.abook.abv.bl.common.Callback;
...@@ -92,7 +79,6 @@ import jp.agentec.abook.abv.ui.home.helper.ABookCheckWebViewHelper; ...@@ -92,7 +79,6 @@ import jp.agentec.abook.abv.ui.home.helper.ABookCheckWebViewHelper;
import jp.agentec.abook.abv.ui.home.helper.ABookPermissionHelper; import jp.agentec.abook.abv.ui.home.helper.ABookPermissionHelper;
import jp.agentec.abook.abv.ui.home.helper.ActivityHandlingHelper; import jp.agentec.abook.abv.ui.home.helper.ActivityHandlingHelper;
import jp.agentec.abook.abv.ui.viewer.activity.CheckOZDViewActivity; import jp.agentec.abook.abv.ui.viewer.activity.CheckOZDViewActivity;
import jp.agentec.abook.abv.ui.viewer.activity.HTMLWebViewActivity;
import jp.agentec.abook.abv.ui.viewer.activity.HTMLXWalkWebViewActivity; import jp.agentec.abook.abv.ui.viewer.activity.HTMLXWalkWebViewActivity;
import jp.agentec.abook.abv.ui.viewer.activity.NoPdfViewActivity; import jp.agentec.abook.abv.ui.viewer.activity.NoPdfViewActivity;
import jp.agentec.abook.abv.ui.viewer.foxitPdf.FoxitPdfCore; import jp.agentec.abook.abv.ui.viewer.foxitPdf.FoxitPdfCore;
...@@ -238,7 +224,23 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity { ...@@ -238,7 +224,23 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
// get Device info // get Device info
bleManagerUtil = new BleManagerUtil(this, new BleManagerUtil.BleManagerUtilListener() { bleManagerUtil = new BleManagerUtil(this, new BleManagerUtil.BleManagerUtilListener() {
@Override @Override
public void onConnectionError() {
Logger.d(TAG, "onDisConnectionState");
putUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_CONNECTED, 0);
ABookAlertDialog alert = AlertDialogUtil.createAlertDialog(ABVContentViewActivity.this, R.string.thermometer);
alert.setMessage(String.format(getString(R.string.msg_ble_connect_error), getString(R.string.thermometer), getString(R.string.thermometer)));
alert.setButton(DialogInterface.BUTTON_POSITIVE, getString(R.string.ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
setThermometerData("");
}
});
alert.show();
}
@Override
public void onConnectionState() { // 接続 public void onConnectionState() { // 接続
Logger.d(TAG, "onDisConnectionState");
putUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_CONNECTED, 1); putUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_CONNECTED, 1);
ABVToastUtil.showMakeText(getApplicationContext(), ABVToastUtil.showMakeText(getApplicationContext(),
String.format(getString(R.string.msg_connected_bluetooth), getString(R.string.thermometer)), String.format(getString(R.string.msg_connected_bluetooth), getString(R.string.thermometer)),
...@@ -247,12 +249,14 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity { ...@@ -247,12 +249,14 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
@Override @Override
public void onDisConnectionState() { // 切断 public void onDisConnectionState() { // 切断
Logger.d(TAG, "onDisConnectionState");
putUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_CONNECTED, 0); putUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_CONNECTED, 0);
ABVToastUtil.showMakeText(getApplicationContext(), getString(R.string.msg_ble_not_connect), Toast.LENGTH_SHORT); ABVToastUtil.showMakeText(getApplicationContext(), getString(R.string.msg_ble_not_connect), Toast.LENGTH_SHORT);
} }
@Override @Override
public void onGetDeviceInfo(String strTemp) { // 機器のデータ public void onGetDeviceInfo(String strTemp) { // 機器のデータ
Logger.d(TAG, "onDisConnectionState");
Toast.makeText( getApplicationContext(), strTemp, Toast.LENGTH_SHORT ).show(); Toast.makeText( getApplicationContext(), strTemp, Toast.LENGTH_SHORT ).show();
Logger.d(TAG, "get temperature [%s]", strTemp); Logger.d(TAG, "get temperature [%s]", strTemp);
setThermometerData(strTemp); setThermometerData(strTemp);
...@@ -260,10 +264,16 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity { ...@@ -260,10 +264,16 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
@Override @Override
public void onGetDeviceInfoFailed() { // 機器のエラー public void onGetDeviceInfoFailed() { // 機器のエラー
Logger.d(TAG, "onDisConnectionState");
putUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_CONNECTED, 0); putUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_CONNECTED, 0);
ABookAlertDialog alert = AlertDialogUtil.createAlertDialog(ABVContentViewActivity.this, R.string.thermometer); ABookAlertDialog alert = AlertDialogUtil.createAlertDialog(ABVContentViewActivity.this, R.string.thermometer);
alert.setMessage(String.format(getString(R.string.msg_ble_connect_error), getString(R.string.thermometer), getString(R.string.thermometer))); alert.setMessage(String.format(getString(R.string.msg_ble_connect_error), getString(R.string.thermometer), getString(R.string.thermometer)));
alert.setButton(DialogInterface.BUTTON_POSITIVE, getString(R.string.ok), (DialogInterface.OnClickListener) null); alert.setButton(DialogInterface.BUTTON_POSITIVE, getString(R.string.ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
setThermometerData("");
}
});
alert.show(); alert.show();
} }
}); });
...@@ -371,9 +381,10 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity { ...@@ -371,9 +381,10 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
// 接続されている機器と切断する。 // 接続されている機器と切断する。
if( null != bleManagerUtil.mBluetoothGatt ) if( null != bleManagerUtil.mBluetoothGatt )
{ {
bleManagerUtil.mBluetoothGatt.close(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
bleManagerUtil.mBluetoothGatt = null; bleManagerUtil.mBluetoothGatt.disconnect();
putUserPref(AppDefType.UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_CONNECTED, 0); }
putUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_CONNECTED, 0);
} }
} }
...@@ -1151,12 +1162,11 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity { ...@@ -1151,12 +1162,11 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
mQid = abookCheckParam.get(ABookKeys.TASK_QUESTION_ID); // 設問ID取得 mQid = abookCheckParam.get(ABookKeys.TASK_QUESTION_ID); // 設問ID取得
// 1:芯温系 2:置くだけセンサー 3:バーコード // 1:芯温系 2:置くだけセンサー 3:バーコード
// if (device_type == Constant.DeviceType.thermomete) { // 芯温系 if (device_type == Constant.DeviceType.thermomete) { // 芯温系
// setThermometerDeviceInfo((Integer.valueOf(abookCheckParam.get(ABookKeys.TASK_DEVICE_TYPE)) == Constant.DeviceType.thermomete)); setThermometerDeviceInfo((Integer.valueOf(abookCheckParam.get(ABookKeys.TASK_DEVICE_TYPE)) == Constant.DeviceType.thermomete));
// } else if (device_type == Constant.DeviceType.sensor) { // 置くだけセンサー } else if (device_type == Constant.DeviceType.sensor) { // 置くだけセンサー
// ErrorMessage.showErrorMessageToast(getApplicationContext(), "Not ready !!!!"); // set Error Message ErrorMessage.showErrorMessageToast(getApplicationContext(), "Not ready !!!!"); // set Error Message
// } else } else if (device_type == Constant.DeviceType.barcode) { // バーコード
if (device_type == Constant.DeviceType.barcode) { // バーコード
setBarcodeDeviceInfo(); setBarcodeDeviceInfo();
} else { } else {
ErrorMessage.showErrorMessageToast(getApplicationContext(), "Device is not working"); // set Error Message ErrorMessage.showErrorMessageToast(getApplicationContext(), "Device is not working"); // set Error Message
...@@ -1405,7 +1415,6 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity { ...@@ -1405,7 +1415,6 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
/** /**
* ディバイスのバーコードの情報取得 * ディバイスのバーコードの情報取得
*
*/ */
protected void setBarcodeDeviceInfo() { protected void setBarcodeDeviceInfo() {
//カメラパーミッションチェック //カメラパーミッションチェック
...@@ -1418,73 +1427,83 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity { ...@@ -1418,73 +1427,83 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
startActivityForResult( barcodeactivityIntent, REQUEST_BARCODE_READER ); startActivityForResult( barcodeactivityIntent, REQUEST_BARCODE_READER );
} }
// /** /**
// * BLEディバイスの芯温系の情報取得 * BLEディバイスの芯温系の情報取得
// * @param showPermissionDialogFlg * @param showPermissionDialogFlg
// */ */
// protected void setThermometerDeviceInfo(final boolean showPermissionDialogFlg) { protected void setThermometerDeviceInfo(final boolean showPermissionDialogFlg) {
// ABookPermissionHelper helper = new ABookPermissionHelper(this, Constant.ABookPermissionType.Bluetooth, null); ABookPermissionHelper helper = new ABookPermissionHelper(this, Constant.ABookPermissionType.Bluetooth, null);
// if (helper.checkMultiPermissions(showPermissionDialogFlg)) { if (helper.checkMultiPermissions(showPermissionDialogFlg)) {
// if (getUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_ADDRESS, "").length() > 0) { if (getUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_ADDRESS, "").length() > 0) {
// String strDeviceName = getUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_NAME, ""); String strDeviceName = getUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_NAME, "");
// // ローカルに保存されている場合保存されているディバイス情報を読み込んで処理する。 // ローカルに保存されている場合保存されているディバイス情報を読み込んで処理する。
// bleManagerUtil.mDeviceAddress = getUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_ADDRESS, ""); bleManagerUtil.mDeviceAddress = getUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_ADDRESS, "");
// int deviceUsed = getUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_CONNECTED, 0); int deviceUsed = getUserPref(UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_CONNECTED, 0);
// // 取得したデバイスリストアクティビティからの情報をローカルに保存 // 取得したデバイスリストアクティビティからの情報をローカルに保存
// setUserPref(strDeviceName, bleManagerUtil.mDeviceAddress, deviceUsed); setUserPref(strDeviceName, bleManagerUtil.mDeviceAddress, deviceUsed);
//
// // Android端末のBluetooth機能の有効化要求 // Android端末のBluetooth機能の有効化要求
// requestBluetoothFeature(); requestBluetoothFeature();
//
// // 接続 // 接続
// bleManagerUtil.connect(); bleManagerUtil.connect();
// } else { } else {
// 設定画面に遷移すること
// setPairingSetting(); // 接続するのために機器設定画面に遷移する。 // setPairingSetting(); // 接続するのために機器設定画面に遷移する。
// } // ディバイス情報がない場合
// } else { ABookAlertDialog alert = AlertDialogUtil.createAlertDialog(ABVContentViewActivity.this, R.string.thermometer);
// Logger.w(TAG,"onGetDeviceInfoFailed Connect BLE Device false"); alert.setMessage(getString(R.string.msg_no_device_info));
// // リソースパターンの適用 alert.setButton(DialogInterface.BUTTON_POSITIVE, getString(R.string.ok), new DialogInterface.OnClickListener() {
// afterABookCheckApi(mCmd, "", 1, PatternStringUtil.patternToString(getApplicationContext(), @Override
// R.string.msg_location_search_fail, public void onClick(DialogInterface dialog, int which) {
// getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)), null); setThermometerData("");
// } }
// } });
// }
// // Android端末のBluetooth機能の有効化要求 } else {
// public void requestBluetoothFeature() { Logger.w(TAG,"onGetDeviceInfoFailed Connect BLE Device false");
// if( bleManagerUtil.mBluetoothAdapter.isEnabled() ) { // リソースパターンの適用
// return; afterABookCheckApi(mCmd, "", 1, PatternStringUtil.patternToString(getApplicationContext(),
// } R.string.msg_location_search_fail,
// // デバイスのBluetooth機能が有効になっていないときは、有効化要求(ダイアログ表示) getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)), null);
// Intent enableBtIntent = new Intent( BluetoothAdapter.ACTION_REQUEST_ENABLE ); }
// startActivityForResult( enableBtIntent, REQUEST_ENABLEBLUETOOTH ); }
// }
// Android端末のBluetooth機能の有効化要求
public void requestBluetoothFeature() {
if( bleManagerUtil.mBluetoothAdapter.isEnabled() ) {
return;
}
// デバイスのBluetooth機能が有効になっていないときは、有効化要求(ダイアログ表示)
Intent enableBtIntent = new Intent( BluetoothAdapter.ACTION_REQUEST_ENABLE );
startActivityForResult( enableBtIntent, REQUEST_ENABLEBLUETOOTH );
}
// 機能の有効化Activityの操作結果 // 機能の有効化Activityの操作結果
@Override @Override
protected void onActivityResult( int requestCode, int resultCode, Intent data ) { protected void onActivityResult( int requestCode, int resultCode, Intent data ) {
switch( requestCode ) { switch( requestCode ) {
// case REQUEST_ENABLEBLUETOOTH: // Bluetooth有効化要求 case REQUEST_ENABLEBLUETOOTH: // Bluetooth有効化要求
// if( Activity.RESULT_CANCELED == resultCode ) { // 有効にされなかった if( Activity.RESULT_CANCELED == resultCode ) { // 有効にされなかった
// ABVToastUtil.showMakeText(getApplicationContext(), getString(R.string.bluetooth_is_not_working), Toast.LENGTH_SHORT); ABVToastUtil.showMakeText(getApplicationContext(), getString(R.string.bluetooth_is_not_working), Toast.LENGTH_SHORT);
// return; return;
// } }
// break; break;
// case REQUEST_CONNECTDEVICE: // デバイス接続要求 case REQUEST_CONNECTDEVICE: // デバイス接続要求
// String strDeviceName; String strDeviceName;
// if( Activity.RESULT_OK == resultCode ) { if( Activity.RESULT_OK == resultCode ) {
// // デバイスリストアクティビティからの情報の取得 // デバイスリストアクティビティからの情報の取得
// bleManagerUtil.mDeviceAddress = mDeviceAddress; bleManagerUtil.mDeviceAddress = mDeviceAddress;
// strDeviceName = data.getStringExtra( PairingSettingActivity.EXTRAS_DEVICE_NAME ); strDeviceName = data.getStringExtra( PairingSettingActivity.EXTRAS_DEVICE_NAME );
// bleManagerUtil.mDeviceAddress = data.getStringExtra( PairingSettingActivity.EXTRAS_DEVICE_ADDRESS ); bleManagerUtil.mDeviceAddress = data.getStringExtra( PairingSettingActivity.EXTRAS_DEVICE_ADDRESS );
// // 取得したデバイスリストアクティビティからの情報をローカルに保存 // 取得したデバイスリストアクティビティからの情報をローカルに保存
// setUserPref(strDeviceName, bleManagerUtil.mDeviceAddress, 1); setUserPref(strDeviceName, bleManagerUtil.mDeviceAddress, 1);
// } else { } else {
// strDeviceName = ""; strDeviceName = "";
// bleManagerUtil.mDeviceAddress = ""; bleManagerUtil.mDeviceAddress = "";
// setUserPref(strDeviceName, bleManagerUtil.mDeviceAddress, 0); setUserPref(strDeviceName, bleManagerUtil.mDeviceAddress, 0);
// } }
// break; break;
case REQUEST_BARCODE_READER: // バーコードの要求 case REQUEST_BARCODE_READER: // バーコードの要求
setBarCodeData(data.getStringExtra(BarCodeReaderActivity.BARCODE_READING_DATA)); // バーコードの読み取りデータ setBarCodeData(data.getStringExtra(BarCodeReaderActivity.BARCODE_READING_DATA)); // バーコードの読み取りデータ
break; break;
......
...@@ -74,15 +74,16 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView ...@@ -74,15 +74,16 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView
@Override @Override
public void run() { public void run() {
BluetoothDevice device = result.getDevice(); BluetoothDevice device = result.getDevice();
// if(device.getName() != null && device.getName().startsWith("MF500B")) { // 識別商品名に絞る
if(device.getName() != null && device.getName().startsWith("MF500")) {
Map<String, String> map = new HashMap<String, String>(); Map<String, String> map = new HashMap<String, String>();
map.put(EXTRAS_DEVICE_NAME, device.getName()); map.put(EXTRAS_DEVICE_NAME, device.getName());
map.put(EXTRAS_DEVICE_ADDRESS, device.getAddress()); map.put(EXTRAS_DEVICE_ADDRESS, device.getAddress());
map.put(DEVICE_CONNECTED, "0"); map.put(DEVICE_CONNECTED, "0");
if (device.getName() != null) { if (device.getName() != null) {
mBleListAdapter.addDevice(map); mBleListAdapter.addDevice(map);
}
} }
} }
} ); } );
...@@ -101,6 +102,9 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView ...@@ -101,6 +102,9 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.pairing_setting); setContentView(R.layout.pairing_setting);
TextView deviceTitle = (TextView) findViewById(R.id.device_toolbar_title);
deviceTitle.setText(R.string.thermometer);
// 戻り値の初期化 // 戻り値の初期化
setResult( Activity.RESULT_CANCELED ); setResult( Activity.RESULT_CANCELED );
...@@ -144,7 +148,15 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView ...@@ -144,7 +148,15 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView
// Bluetoothと接続処理する // Bluetoothと接続処理する
bleManagerUtil = new BleManagerUtil(this, new BleManagerUtil.BleManagerUtilListener() { bleManagerUtil = new BleManagerUtil(this, new BleManagerUtil.BleManagerUtilListener() {
@Override @Override
public void onConnectionError() {
Logger.d(TAG, "onConnectionError");
closeProgressPopup();
}
@Override
public void onConnectionState() { // 接続 public void onConnectionState() { // 接続
Logger.d(TAG, "onConnectionState");
closeProgressPopup();
Map<String, String> map = new HashMap<String, String>(); Map<String, String> map = new HashMap<String, String>();
map.put(EXTRAS_DEVICE_NAME, bleManagerUtil.mDeviceName); map.put(EXTRAS_DEVICE_NAME, bleManagerUtil.mDeviceName);
map.put(EXTRAS_DEVICE_ADDRESS, bleManagerUtil.mDeviceAddress); map.put(EXTRAS_DEVICE_ADDRESS, bleManagerUtil.mDeviceAddress);
...@@ -159,6 +171,8 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView ...@@ -159,6 +171,8 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView
@Override @Override
public void onDisConnectionState() { // 切断 public void onDisConnectionState() { // 切断
Logger.d(TAG, "onDisConnectionState");
closeProgressPopup();
// mDeviceListAdapter.notifyDataSetChanged(); // mDeviceListAdapter.notifyDataSetChanged();
Map<String, String> map = new HashMap<String, String>(); Map<String, String> map = new HashMap<String, String>();
map.put(EXTRAS_DEVICE_NAME, bleManagerUtil.mDeviceName); map.put(EXTRAS_DEVICE_NAME, bleManagerUtil.mDeviceName);
...@@ -176,20 +190,23 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView ...@@ -176,20 +190,23 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView
@Override @Override
public void onGetDeviceInfo(String strTemp) { // 機器のデータ public void onGetDeviceInfo(String strTemp) { // 機器のデータ
Logger.d(TAG, "onGetDeviceInfo");
closeProgressPopup();
// Toast.makeText( getApplicationContext(), R.string.msg_connected_bluetooth, Toast.LENGTH_SHORT ).show(); // Toast.makeText( getApplicationContext(), R.string.msg_connected_bluetooth, Toast.LENGTH_SHORT ).show();
Logger.d(TAG, "get temperature [%s]", strTemp); Logger.d(TAG, "get temperature [%s]", strTemp);
} }
@Override @Override
public void onGetDeviceInfoFailed() { // 機器のエラー public void onGetDeviceInfoFailed() { // 機器のエラー
Logger.d(TAG, "onGetDeviceInfoFailed");
closeProgressPopup();
showConfirmAlert( R.string.thermometer, String.format(getString(R.string.msg_ble_connect_error), getString(R.string.thermometer), getString(R.string.thermometer))); showConfirmAlert( R.string.thermometer, String.format(getString(R.string.msg_ble_connect_error), getString(R.string.thermometer), getString(R.string.thermometer)));
} }
}); });
bleManagerUtil.startDeviceInfo(); bleManagerUtil.startDeviceInfo();
// Scan Button // Reload Button
mButton_Scan = (Button)findViewById( R.id.scan_button ); mButton_Scan = (Button)findViewById( R.id.btn_reload );
mButton_Scan.setAllCaps(false); mButton_Scan.setAllCaps(false);
mButton_Scan.setOnClickListener(new View.OnClickListener() { mButton_Scan.setOnClickListener(new View.OnClickListener() {
@Override @Override
...@@ -198,19 +215,6 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView ...@@ -198,19 +215,6 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView
} }
}); });
// Stop Button
mButton_Stop = (Button)findViewById( R.id.stop_button );
mButton_Stop.setAllCaps(false);
mButton_Stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopScan();
}
});
// 設定画面が表示する場合、スキャンボタンが見えないように
mButton_Stop.setVisibility(View.GONE);
// 保存されているディバイスの情報がある場合、リストに表示する。 // 保存されているディバイスの情報がある場合、リストに表示する。
if (getUserPref(AppDefType.UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_ADDRESS, "").length() > 0) { if (getUserPref(AppDefType.UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_ADDRESS, "").length() > 0) {
Map<String, String> getUserDataMap = new HashMap<String, String>(); Map<String, String> getUserDataMap = new HashMap<String, String>();
...@@ -233,8 +237,11 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView ...@@ -233,8 +237,11 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView
// デバイスのBluetooth機能の有効化要求 // デバイスのBluetooth機能の有効化要求
requestBluetoothFeature(); requestBluetoothFeature();
// スキャン開始 // ローカルに保存されているディバイスの情報がない場合処理を行う
startScan(); if (getUserPref(AppDefType.UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_ADDRESS, "").length() == 0) {
// スキャン開始
startScan();
}
} }
// 別のアクティビティ(か別のアプリ)に移行したことで、バックグラウンドに追いやられた時 // 別のアクティビティ(か別のアプリ)に移行したことで、バックグラウンドに追いやられた時
...@@ -252,8 +259,7 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView ...@@ -252,8 +259,7 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView
// Gattサービスがある場合、切断するためnullにする。 // Gattサービスがある場合、切断するためnullにする。
if( null != bleManagerUtil.mBluetoothGatt ) { if( null != bleManagerUtil.mBluetoothGatt ) {
bleManagerUtil.mBluetoothGatt.close(); bleManagerUtil.mBluetoothGatt.disconnect();
bleManagerUtil.mBluetoothGatt = null;
putUserPref(AppDefType.UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_CONNECTED, 0); putUserPref(AppDefType.UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_CONNECTED, 0);
} }
} }
...@@ -296,6 +302,7 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView ...@@ -296,6 +302,7 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView
return; return;
} }
showProgressPopup(getRString(R.string.msg_device_search));
// スキャン開始(一定時間後にスキャン停止する) // スキャン開始(一定時間後にスキャン停止する)
mHandler.postDelayed( new Runnable() { mHandler.postDelayed( new Runnable() {
@Override @Override
...@@ -303,19 +310,14 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView ...@@ -303,19 +310,14 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView
mScanning = false; mScanning = false;
scanner.stopScan( mLeScanCallback ); scanner.stopScan( mLeScanCallback );
// ボタンの更新
mButton_Scan.setVisibility(View.VISIBLE);
mButton_Stop.setVisibility(View.GONE);
Logger.d(TAG, "scan in 10 sec"); Logger.d(TAG, "scan in 10 sec");
closeProgressPopup();
} }
}, SCAN_PERIOD ); }, SCAN_PERIOD );
mScanning = true; mScanning = true;
scanner.startScan( mLeScanCallback ); scanner.startScan( mLeScanCallback );
// ボタンの更新
mButton_Scan.setVisibility(View.GONE);
mButton_Stop.setVisibility(View.VISIBLE);
Logger.d(TAG, "start scan !!"); Logger.d(TAG, "start scan !!");
} }
...@@ -333,9 +335,6 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView ...@@ -333,9 +335,6 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView
mScanning = false; mScanning = false;
scanner.stopScan( mLeScanCallback ); scanner.stopScan( mLeScanCallback );
// ボタンの更新
mButton_Scan.setVisibility(View.VISIBLE);
mButton_Stop.setVisibility(View.GONE);
Logger.d(TAG, "stop scan !!"); Logger.d(TAG, "stop scan !!");
} }
...@@ -372,10 +371,23 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView ...@@ -372,10 +371,23 @@ public class PairingSettingActivity extends ABVUIActivity implements AdapterView
} else { } else {
bleManagerUtil.mDeviceAddress = deviceAddress; bleManagerUtil.mDeviceAddress = deviceAddress;
bleManagerUtil.mDeviceName = deviceName; bleManagerUtil.mDeviceName = deviceName;
showProgressPopup(getString(R.string.msg_device_connecting));
// デバイスのBluetooth機能の有効化要求
requestBluetoothFeature();
// 接続
bleManagerUtil.connect(); bleManagerUtil.connect();
} }
} }
protected boolean testcheck() {
if (getUserPref(AppDefType.UserPrefKey.BLUETOOTH_DEVICE_TEMPERATURE_CONNECTED, 0) == 1) {
return true;
}
return false;
}
// 閉じるボタンの処理 // 閉じるボタンの処理
public void onClickCloseView(View v) { public void onClickCloseView(View v) {
finish(); finish();
......
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