Class LocalDevice


  • public class LocalDevice
    extends java.lang.Object
    The LocalDevice class defines the basic functions of the Bluetooth manager. The Bluetooth manager provides the lowest level of interface possible into the Bluetooth stack. It provides access to and control of the local Bluetooth device.

    This class produces a singleton object.

    Since:
    TotalCross 1.15
    • Method Detail

      • getBluetoothAddress

        public java.lang.String getBluetoothAddress()
        Retrieves the Bluetooth address of the local device. The Bluetooth address will never be null. The Bluetooth address will be 12 characters long. Valid characters are 0-9 and A-F.
        Returns:
        the Bluetooth address of the local device
        Since:
        TotalCross 1.2
      • getDeviceClass

        public DeviceClass getDeviceClass()
        Retrieves the DeviceClass object that represents the service classes, major device class, and minor device class of the local device. This method will return null if the service classes, major device class, or minor device class could not be determined.
        Returns:
        the service classes, major device class, and minor device class of the local device, or null if the service classes, major device class or minor device class could not be determined
        Since:
        TotalCross 1.2
      • getDiscoverable

        public int getDiscoverable()
        Retrieves the local device's discoverable mode. The return value will be DiscoveryAgent.GIAC, DiscoveryAgent.LIAC, DiscoveryAgent.NOT_DISCOVERABLE, or a value in the range 0x9E8B00 to 0x9E8B3F.
        Returns:
        the discoverable mode the device is presently in
        Since:
        TotalCross 1.2
      • getDiscoveryAgent

        public DiscoveryAgent getDiscoveryAgent()
        Returns the discovery agent for this device. Multiple calls to this method will return the same object. This method will never return null.
        Returns:
        the discovery agent for the local device
        Since:
        TotalCross 1.15
      • getFriendlyName

        public java.lang.String getFriendlyName()
        Retrieves the name of the local device. The Bluetooth specification calls this name the "Bluetooth device name" or the "user-friendly name".
        Returns:
        the name of the local device; null if the name could not be retrieved
        Since:
        TotalCross 1.2
      • getLocalDevice

        public static LocalDevice getLocalDevice()
                                          throws IOException
        Retrieves the LocalDevice object for the local Bluetooth device. Multiple calls to this method will return the same object. This method will never return null.
        Returns:
        an object that represents the local Bluetooth device
        Throws:
        IOException - if the Bluetooth system could not be initialized
        Since:
        TotalCross 1.15
      • getProperty

        public static java.lang.String getProperty​(java.lang.String property)
      • isPowerOn

        public static boolean isPowerOn()
        Retrieves the power state of the local Bluetooth device.
        Returns:
        true if the local Bluetooth device is powered on, false if the local Bluetooth device is off.
        Since:
        TotalCross 1.2
      • setDiscoverable

        public boolean setDiscoverable​(int mode)
                                throws IOException
        Sets the discoverable mode of the device. The mode may be any number in the range 0x9E8B00 to 0x9E8B3F as defined by the Bluetooth Assigned Numbers Document. When this specification was defined, only GIAC ( DiscoveryAgent.GIAC) and LIAC ( DiscoveryAgent.LIAC) were defined, but Bluetooth profiles may add additional access codes in the future. To determine what values may be used, check the Bluetooth Assigned Numbers document at http://www.bluetooth.org/assigned-numbers/baseband.htm. If DiscoveryAgent.GIAC or DiscoveryAgent.LIAC are provided, then this method will attempt to put the device into general or limited discoverable mode, respectively. To take a device out of discoverable mode, provide the DiscoveryAgent.NOT_DISCOVERABLE flag. The BCC decides if the request will be granted. In addition to the BCC, the Bluetooth system could effect the discoverability of a device.

        According to the Bluetooth Specification, a device should only be limited discoverable ( DiscoveryAgent.LIAC) for 1 minute. This is handled by the implementation of the API. After the minute is up, the device will revert back to the previous discoverable mode.

        Parameters:
        mode - the mode the device should be in; valid modes are DiscoveryAgent.GIAC, DiscoveryAgent.LIAC, DiscoveryAgent.NOT_DISCOVERABLE and any value in the range 0x9E8B00 to 0x9E8B3F
        Returns:
        true if the request succeeded, otherwise false if the request failed because the BCC denied the request; false if the Bluetooth system does not support the access mode specified in mode
        Throws:
        java.lang.IllegalArgumentException - if the mode is not DiscoveryAgent.GIAC, DiscoveryAgent.LIAC , DiscoveryAgent.NOT_DISCOVERABLE, or in the range 0x9E8B00 to 0x9E8B3F
        IOException - if the Bluetooth system is in a state that does not allow the discoverable mode to be changed
        See Also:
        DiscoveryAgent.GIAC, DiscoveryAgent.LIAC, DiscoveryAgent.NOT_DISCOVERABLE
      • updateRecord

        public void updateRecord​(ServiceRecord srvRecord)
      • getRecord

        public ServiceRecord getRecord​(StreamConnectionNotifier notifier)
        Gets the service record corresponding to a btspp, btl2cap, or btgoep notifier. In the case of a run-before-connect service, the service record returned by getRecord() was created by the same call to Connector.open() that created the notifier.

        If a connect-anytime server application does not already have a service record in the SDDB, either because a service record for this service was never added to the SDDB or because the service record was added and then removed, then the ServiceRecord returned by getRecord() was created by the same call to Connector.open() that created the notifier.

        In the case of a connect-anytime service, there may be a service record in the SDDB corresponding to this service prior to application startup. In this case, the getRecord() method must return a ServiceRecord whose contents match those of the corresponding service record in the SDDB. If a connect-anytime server application made changes previously to its service record in the SDDB (for example, during a previous execution of the server), and that service record is still in the SDDB, then those changes must be reflected in the ServiceRecord returned by getRecord().

        Two invocations of this method with the same notifier argument return objects that describe the same service attributes, but the return values may be different object references.

        Parameters:
        notifier - a connection that waits for clients to connect to a Bluetooth service
        Returns:
        the ServiceRecord associated with notifier
        Throws:
        java.lang.IllegalArgumentException - if notifier is closed, or if notifier is not a Bluetooth notifier, e.g., a StreamConnectionNotifier created with a scheme other than btspp.
        java.lang.NullPointerException - if notifier is null