package com.hansion.hble.sample;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.hansion.h_ble.BleController;
import com.hansion.h_ble.callback.OnReceiverCallback;
import com.hansion.h_ble.callback.OnWriteCallback;
import com.hansion.hble.R;
public class SendAndReciveActivity extends AppCompatActivity implements View.OnClickListener {
private BleController mBleController;
private Button mSendButton;
private EditText mSendEdit;
private TextView mReciveText;
private StringBuffer mReciveString = new StringBuffer();
public static final String REQUESTKEY_SENDANDRECIVEACTIVITY = "SendAndReciveActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send_and_recive);
initView();
// TODO 在新的界面要获取实例,无需init
mBleController = BleController.getInstance();
// TODO 接收数据的监听
mBleController.registReciveListener(REQUESTKEY_SENDANDRECIVEACTIVITY, new OnReceiverCallback() {
@Override
public void onRecive(byte[] value) {
mReciveString.append(mBleController.bytesToHexString(value) + "\r\n");
mReciveText.setText(mReciveString.toString());
}
});
}
private void initView() {
mSendButton = (Button) findViewById(R.id.mSendButton);
mSendEdit = (EditText) findViewById(R.id.mSendEdit);
mReciveText = (TextView) findViewById(R.id.mReciveText);
mSendButton.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.mSendButton:
String sendText = mSendEdit.getText().toString().trim();
if (TextUtils.isEmpty(sendText)) {
Toast.makeText(this, "请输入要发送的内容!", Toast.LENGTH_SHORT).show();
return;
} else {
byte[] bytes = sendText.getBytes();
// TODO 发送数据 可以输入 A 测试,如果串口调试工具显示为0x41 代表接收正确
mBleController.writeBuffer(bytes, new OnWriteCallback() {
@Override
public void onSuccess() {
Toast.makeText(SendAndReciveActivity.this, "发送成功!", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailed(int state) {
Toast.makeText(SendAndReciveActivity.this, "发送失败!", Toast.LENGTH_SHORT).show();
}
});
}
break;
default:
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
//移除接收数据的监听
mBleController.unregistReciveListener(REQUESTKEY_SENDANDRECIVEACTIVITY);
// TODO 断开连接
mBleController.closeBleConn();
}
}