/// <summary>
 ///
 /// </summary>
 public virtual void StartScan()
 {
     if (m_Adapter != null)
     {
         StopScan();
     }
     if (m_Cb == null)
     {
         m_Cb = new BluetoothAdapter.LeScanCallback(this);
     }
     m_Adapter = BluetoothAdapter.GetDefaultAdapter();
     m_Adapter.StartLeScan(m_Cb);
     Log.i("BluetoothScanner", "StartScan");
 }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        public virtual void Open()
        {
            if (m_Device != null)
            {
                Close();
            }
#if UNITY_EDITOR || UNITY_STANDALONE
            BluetoothAdapter adapter = BluetoothAdapter.GetDefaultAdapter();
#elif UNITY_ANDROID
            using (BluetoothAdapter adapter = BluetoothAdapter.GetDefaultAdapter())
#endif
            {
                if (!adapter.IsEnabled())
                {
                    return;
                }
                m_Device = adapter.GetRemoteDevice(m_Address);
                // <!--
                if (m_Device == null)
                {
                    if (m_OpenCallback != null)
                    {
                        m_OpenCallback.OnStreamOpenFailure(this);
                    }
                    else
                    {
                        Log.e("BleSerialPort", "No m_OpenCallback");
                        //BluetoothScannerGUI.RequestAddress(Open);
                    }
                    return;
                }
                // -->
                m_Gatt = m_Device.ConnectGatt(
#if UNITY_EDITOR || UNITY_STANDALONE
                    Csr.Bluetooth.Object.NULL_PTR,
#elif UNITY_ANDROID
                    Android.App.Activity.currentActivity.m_SealedPtr,
#endif
                    false,
                    m_Callback = new BluetoothGattCallback(this)
                    );
            }
            m_BufferRead = new byte[m_SizeRead = 0];
        }
Beispiel #3
0
        /// <summary>
        ///
        /// </summary>
        public virtual void OpenDevice(string i_address)
        {
            string text = i_address;          //m_TxtAddress.text;

            if (!string.IsNullOrEmpty(text))
            {
                if (m_Adapter == null)
                {
                    m_Adapter = BluetoothAdapter.GetDefaultAdapter();
                    m_Cb      = new BluetoothGattCallback(this);
                }
#if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN//
                Log.i(text, NativeMethods.libcsr_ext_address_to_string_1(m_Adapter.AddressPool[text]));
                m_Gatt = m_Adapter.GetRemoteDevice(text).ConnectGatt(Csr.Bluetooth.Object.NULL_PTR, false, m_Cb);
#elif UNITY_ANDROID
                m_Gatt = m_Adapter.GetRemoteDevice(text).ConnectGatt(null, false, m_Cb);
#endif
            }
        }
Beispiel #4
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Setup the window
            RequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
            SetContentView(R.Layout.device_list);

            // Set result CANCELED in case the user backs out
            SetResult(Activity.RESULT_CANCELED);

            // Initialize the button to perform device discovery
            var scanButton = (Button)FindViewById(R.Id.button_scan);

            scanButton.Click += (s, x) => {
                doDiscovery();
                ((View)s).SetVisibility(View.GONE);
            };

            // Initialize array adapters. One for already paired devices and
            // one for newly discovered devices
            mPairedDevicesArrayAdapter = new ArrayAdapter <string>(this, R.Layout.device_name);
            mNewDevicesArrayAdapter    = new ArrayAdapter <string>(this, R.Layout.device_name);

            // Find and set up the ListView for paired devices
            var pairedListView = (ListView)FindViewById(R.Id.paired_devices);

            pairedListView.Adapter    = mPairedDevicesArrayAdapter;
            pairedListView.ItemClick += OnDeviceClick;

            // Find and set up the ListView for newly discovered devices
            ListView newDevicesListView = (ListView)FindViewById(R.Id.new_devices);

            newDevicesListView.Adapter    = mNewDevicesArrayAdapter;
            newDevicesListView.ItemClick += OnDeviceClick;

            // Register for broadcasts when a device is discovered
            IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);

            this.RegisterReceiver(mReceiver, filter);

            // Register for broadcasts when discovery has finished
            filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
            this.RegisterReceiver(mReceiver, filter);

            // Get the local Bluetooth adapter
            mBtAdapter = BluetoothAdapter.GetDefaultAdapter();

            // Get a set of currently paired devices
            var pairedDevices = mBtAdapter.BondedDevices;

            // If there are paired devices, add each one to the ArrayAdapter
            if (pairedDevices.Size() > 0)
            {
                FindViewById(R.Id.title_paired_devices).Visibility = View.VISIBLE;
                foreach (BluetoothDevice device in pairedDevices.AsEnumerable())
                {
                    mPairedDevicesArrayAdapter.Add(device.Name + "\n" + device.Address);
                }
            }
            else
            {
                string noDevices = Resources.GetText(R.String.none_paired).ToString();
                mPairedDevicesArrayAdapter.Add(noDevices);
            }
        }
        public const int STATE_CONNECTED  = 3;   // now connected to a remote device

        /// <summary>
        /// Constructor. Prepares a new BluetoothChat session. </summary>
        /// <param name="context">  The UI Activity Context </param>
        /// <param name="handler">  A Handler to send messages back to the UI Activity </param>
        public BluetoothChatService(Context context, Handler handler)
        {
            mAdapter = BluetoothAdapter.GetDefaultAdapter();
            mState   = STATE_NONE;
            mHandler = handler;
        }