蓝牙连接原理
This commit is contained in:
parent
05ac0641d0
commit
49f2148c3d
|
@ -14,6 +14,7 @@ public class MyApplication extends Application {
|
|||
|
||||
//初始化Tencent Bugly
|
||||
CrashReport.initCrashReport(getApplicationContext(), "835a968d72", false);
|
||||
//1.初始化nqpen sdk
|
||||
NQPenSDK.getInstance().logSwitch(this,false,false);
|
||||
LogUtils.getConfig().setLogSwitch(true);
|
||||
LogUtils.getConfig().setLog2FileSwitch(true);
|
||||
|
|
|
@ -91,7 +91,7 @@ public class DeviceListActivity extends Activity implements SwipeRefreshLayout.O
|
|||
|
||||
LogUtils.d("onCreate");
|
||||
context = this;
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题栏
|
||||
setContentView(R.layout.activity_device_list);
|
||||
usbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE);
|
||||
|
||||
|
@ -262,6 +262,10 @@ public class DeviceListActivity extends Activity implements SwipeRefreshLayout.O
|
|||
}).show();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备列表的事件监听
|
||||
* 点击设备 关闭activity 回到主界面
|
||||
*/
|
||||
private OnItemClickListener mDeviceClickListener = new OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
|
@ -287,7 +291,7 @@ public class DeviceListActivity extends Activity implements SwipeRefreshLayout.O
|
|||
PenCtrlSdkManager.getInstance().connect(PenCtrlSdkManager.getInstance().getCurNQDev());
|
||||
finish();
|
||||
}
|
||||
} else {
|
||||
} else {//连接类型为蓝牙
|
||||
PenCtrlSdkManager.getInstance().connect(PenCtrlSdkManager.getInstance().getCurNQDev());
|
||||
finish();
|
||||
}
|
||||
|
@ -301,7 +305,7 @@ public class DeviceListActivity extends Activity implements SwipeRefreshLayout.O
|
|||
@Override
|
||||
public void onRefresh() {
|
||||
|
||||
// PenCtrlSdkManager.getInstance().stopSearchPeripheralsList();
|
||||
// PenCtrlSdkManager.getInstance().stopSearchPeripheralsList();
|
||||
deviceList.clear();
|
||||
deviceAdapter.notifyDataSetChanged();
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.eningqu.aipen.demo.activity;
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
|
@ -152,7 +153,7 @@ public class MainActivity extends Activity {
|
|||
}
|
||||
};
|
||||
|
||||
private SendThread sendThread;
|
||||
private SendThread sendThread;//实时转换字迹的线程
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
|
@ -194,7 +195,7 @@ public class MainActivity extends Activity {
|
|||
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
|
||||
|
||||
switch (menuItem.getItemId()) {
|
||||
case R.id.scan_usb:
|
||||
case R.id.scan_usb://扫描usb
|
||||
//关闭侧边栏
|
||||
mBinding.drawerLayout.closeDrawer(GravityCompat.START);
|
||||
//检查设备是否支持USB的HOST模式
|
||||
|
@ -206,16 +207,16 @@ public class MainActivity extends Activity {
|
|||
startScanDeviceActivity();
|
||||
}
|
||||
break;
|
||||
case R.id.scan_ble:
|
||||
case R.id.scan_ble://扫描蓝牙
|
||||
//关闭侧边栏
|
||||
mBinding.drawerLayout.closeDrawer(GravityCompat.START);
|
||||
//检查设备是否支持蓝牙
|
||||
if (!isBluetoothAvailable()) {
|
||||
ToastUtils.showLong("Bluetooth is not available");
|
||||
} else {
|
||||
PenCtrlSdkManager.getInstance().release();
|
||||
intiPenSDK(NQPenSDK.CONN_TYPE.BLE);
|
||||
startScanDeviceActivity();
|
||||
PenCtrlSdkManager.getInstance().release();//释放原先的连接
|
||||
intiPenSDK(NQPenSDK.CONN_TYPE.BLE);//初始化蓝牙连接
|
||||
startScanDeviceActivity();//开始扫描
|
||||
}
|
||||
break;
|
||||
case R.id.sdk_version:
|
||||
|
@ -506,6 +507,9 @@ public class MainActivity extends Activity {
|
|||
PenCtrlSdkManager.getInstance().startScanDevice();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置各类事件监听
|
||||
*/
|
||||
private void setPenListener() {
|
||||
//设置实时书写点接收监听
|
||||
PenCtrlSdkManager.getInstance().setDotListener(penDotListener);
|
||||
|
@ -539,44 +543,44 @@ public class MainActivity extends Activity {
|
|||
public void run() {
|
||||
|
||||
|
||||
int width = ScreenUtils.getScreenWidth();
|
||||
int height = (int) ((float) ScreenUtils.getScreenWidth() / pageWHRatio);
|
||||
int width = ScreenUtils.getScreenWidth();
|
||||
int height = (int) ((float) ScreenUtils.getScreenWidth() / pageWHRatio);
|
||||
|
||||
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(width, height);
|
||||
layoutParams.width = ScreenUtils.getScreenWidth();
|
||||
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(width, height);
|
||||
layoutParams.width = ScreenUtils.getScreenWidth();
|
||||
|
||||
canvasFrame.setLayoutParams(layoutParams);
|
||||
canvasFrame.setLayoutParams(layoutParams);
|
||||
|
||||
final CanvasDrawView drawView = canvasFrame.bDrawl;
|
||||
if (null != drawView) {
|
||||
drawView.setZOrderOnTop(true); // 在最顶层,会遮挡一切view
|
||||
drawView.setZOrderMediaOverlay(true);// 如已绘制SurfaceView则在surfaceView上一层绘制。
|
||||
drawView.setDrawing(true);
|
||||
}
|
||||
final CanvasDrawView drawView = canvasFrame.bDrawl;
|
||||
if (null != drawView) {
|
||||
drawView.setZOrderOnTop(true); // 在最顶层,会遮挡一切view
|
||||
drawView.setZOrderMediaOverlay(true);// 如已绘制SurfaceView则在surfaceView上一层绘制。
|
||||
drawView.setDrawing(true);
|
||||
}
|
||||
|
||||
canvasFrame.getViewTreeObserver().addOnGlobalLayoutListener(
|
||||
new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||
@Override
|
||||
public void onGlobalLayout() {
|
||||
canvasFrame.getViewTreeObserver().addOnGlobalLayoutListener(
|
||||
new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||
@Override
|
||||
public void onGlobalLayout() {
|
||||
// mCanvasHeight = drawView.getHeight();
|
||||
// mCanvasWidth = drawView.getWidth();
|
||||
LogUtils.d("onGlobalLayout 设置触摸监听");
|
||||
canvasFrame.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||
if (null != frameLayout) {
|
||||
LogUtils.d("onGlobalLayout 设置触摸监听");
|
||||
canvasFrame.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||
if (null != frameLayout) {
|
||||
|
||||
frameLayout.setOnTouchListener(new TouchListener(canvasFrame, frameLayout.getWidth(),
|
||||
frameLayout.getHeight(), canvasFrame.getMeasuredWidth(), canvasFrame.getMeasuredHeight()));
|
||||
}
|
||||
|
||||
//设置笔默认的颜色和大小
|
||||
// setDefaultPenSizeAndColour();
|
||||
|
||||
canvasFrame.initDrawBroad = true;
|
||||
frameLayout.setOnTouchListener(new TouchListener(canvasFrame, frameLayout.getWidth(),
|
||||
frameLayout.getHeight(), canvasFrame.getMeasuredWidth(), canvasFrame.getMeasuredHeight()));
|
||||
}
|
||||
});
|
||||
|
||||
frameLayout.removeAllViews();
|
||||
frameLayout.addView(canvasFrame);
|
||||
//设置笔默认的颜色和大小
|
||||
setDefaultPenSizeAndColour();
|
||||
|
||||
canvasFrame.initDrawBroad = true;
|
||||
}
|
||||
});
|
||||
|
||||
frameLayout.removeAllViews();
|
||||
frameLayout.addView(canvasFrame);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -789,7 +793,6 @@ public class MainActivity extends Activity {
|
|||
}
|
||||
|
||||
void resumeThread() {
|
||||
|
||||
synchronized (lock) {
|
||||
lock.notify();
|
||||
}
|
||||
|
@ -814,10 +817,10 @@ public class MainActivity extends Activity {
|
|||
+ ", page=" + nqDot.page + ",bookNum=" + nqDot.bookNum
|
||||
+ ", Width=" + nqDot.book_width + ", Height=" + nqDot.book_height);
|
||||
|
||||
if(page==-1){
|
||||
if(page==-1){//第一次更新页面信息
|
||||
page=nqDot.page;
|
||||
}else {
|
||||
if(page!=nqDot.page){
|
||||
if(page!=nqDot.page){//点阵笔迹携带的页面信息与界面展示的界面信息不一样
|
||||
Message message= new Message();
|
||||
page=nqDot.page;
|
||||
message.what=3;
|
||||
|
@ -828,11 +831,8 @@ public class MainActivity extends Activity {
|
|||
|
||||
canvasDrawView.addDot(mac, nqDot);
|
||||
}
|
||||
|
||||
onPause();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1155,6 +1155,7 @@ public class MainActivity extends Activity {
|
|||
/**
|
||||
* 动态权限
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
private void requestPermissions() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
rxPermission.request(
|
||||
|
|
|
@ -325,7 +325,6 @@ public class CanvasDrawView extends SurfaceView implements SurfaceHolder.Callbac
|
|||
canvas.drawPath(strokes.get(i).fullPath, mPaint);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue