@Override public boolean setDiscoverable(int time){ if (!isAvailable() && !isEnabled()){ return false; } Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); intent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, time); mContext.startActivity(intent); return true; }
/** * Get current instance as singleton. * @return BluetoothController instance */ public static BluetoothController getInstance(){ if (sBluetoothController == null){ synchronized (BluetoothController.class){ if (sBluetoothController == null){ sBluetoothController = new BluetoothController(); } } } return sBluetoothController; }
private void initBT(){ mBluetoothController = BluetoothController.getInstance().build(this); mBluetoothController.setAppUuid(UUID.fromString("fa87c0d0-afac-12de-8a39-0450200c9a66")); mBluetoothController.setBluetoothListener(mListener); tvBTState.setText("Bluetooth state: " + Utils.transBtStateAsString(mBluetoothController.getBluetoothState())); }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 4){ if (mBluetoothController != null){ mBluetoothController.release(); } mBluetoothController.build(this); mBluetoothController.setBluetoothListener(mListener); } }
@Override public void onClick(View v) { if (!mBluetoothController.isEnabled()) { mBluetoothController.openBluetooth(); } else { Toast.makeText(ClassicBluetoothActivity.this, "Bluetooth has opened!", Toast.LENGTH_SHORT).show(); } } });
mDeviceName = getIntent().getStringExtra("name"); mBluetoothController = BluetoothController.getInstance(); mBluetoothController.setBluetoothListener(new BluetoothListener() { @Override public void onActionStateChanged(int preState, int state) { tvDeviceMac.setText("MAC address: " + mMacAddress); tvConnectState.setText("Connection state: " + Utils.transConnStateAsString(mBluetoothController.getConnectionState())); mBluetoothController.connect(mMacAddress); }else { if (mBluetoothController.getConnectedDevice() == null){ return; mDeviceName = mBluetoothController.getConnectedDevice().getName(); mMacAddress = mBluetoothController.getConnectedDevice().getAddress(); tvDeviceName.setText("Device: " + mDeviceName); tvDeviceMac.setText("MAC address: " + mMacAddress);
@Override public void reConnect(String mac) { if (!isAvailable() || !isEnabled()){ throw new RuntimeException("Bluetooth is not avaliable!"); } if (mBluetoothAdapter.isDiscovering()){ mBluetoothAdapter.cancelDiscovery(); } if (getConnectionState() == State.STATE_DISCONNECTED && mBluetoothService != null && mac != null){ mBluetoothService.connect(mBluetoothAdapter.getRemoteDevice(mac)); } }
@Override public void onClick(View v) { if (mConnectState == State.STATE_CONNECTED) { mBluetoothController.disconnect(); } finish(); } });
@Override public boolean startScan() { if (!isAvailable() && !isEnabled()){ return false; } return mBluetoothAdapter.startDiscovery(); }
@Override public boolean cancelScan() { if (!isAvailable() && !isEnabled()){ return false; } return mBluetoothAdapter.cancelDiscovery(); }
@Override public void connect(String mac){ if (!isAvailable() || !isEnabled()){ throw new RuntimeException("Bluetooth is not avaliable!"); } if (mBluetoothAdapter.isDiscovering()){ mBluetoothAdapter.cancelDiscovery(); } if (mBluetoothService != null){ mBluetoothService.connect(mBluetoothAdapter.getRemoteDevice(mac)); } }