如何采用Android 2.1 SDK取消配对蓝牙设备蓝牙、设备、Android、SDK

由网友(叫我女王i)分享简介:在Android 2.1系统,取消配对蓝牙设备,你可以去蓝牙设置,在设备上长,然后选择取消配对取消配对的设备。我希望能够从我的应用程序做到这一点。我可以检索配对/粘合设备列表使用 BluetoothAdapter.getBondedDevices(),但我怎么也找不到拆配。我已经探讨了BluetoothChat样,我已...

在Android 2.1系统,取消配对蓝牙设备,你可以去蓝牙设置,在设备上长,然后选择取消配对取消配对的设备。我希望能够从我的应用程序做到这一点。我可以检索配对/粘合设备列表使用 BluetoothAdapter.getBondedDevices(),但我怎么也找不到拆配。我已经探讨了BluetoothChat样,我已经搜查了SDK,但仍然无法找到一个API,允许这样做。

In Android 2.1, to unpair a Bluetooth device you can go to Bluetooth settings, long-click on a device and select Unpair to unpair that device. I want to be able to do this from my application. I can retrieve a list of paired/bonded devices using BluetoothAdapter.getBondedDevices(), but I can't find how to unpair. I've explored the BluetoothChat sample, and I've searched the sdk but still can't find an API that allows this.

我怎样才能解除配对蓝牙设备?

How can I unpair a Bluetooth device?

推荐答案

下面是你如何解除配对/删除绑定的设备调用此方法,其中MACADDRESS是device..ie的MAC地址的字符串00:02:00:A3:03:05

Here's how you unpair/remove a bonded device call this method where macAddress is the string of the mac address of the device..i.e. "00:02:00:A3:03:05"

IBluetooth ib =getIBluetooth();
ib.removeBond(macAddress);

要获得IBluetooth对象,你需要经过几个步骤

To get the IBluetooth Object you need to go through a couple of steps

在您的项目称为android.bluetooth 创建一个包 创建两个文件,​​IBluetooth.aidl和IBluetoothCallback.aidl

在你的文件创建方法称为getBluetooth() create a package in your project called android.bluetooth create two files, IBluetooth.aidl and IBluetoothCallback.aidl

create method in your files called getBluetooth()

private IBluetooth getIBluetooth() {
IBluetooth ibt = null;

try {

    Class c2 = Class.forName("android.os.ServiceManager");

    Method m2 = c2.getDeclaredMethod("getService",String.class);
    IBinder b = (IBinder) m2.invoke(null, "bluetooth");

    Class c3 = Class.forName("android.bluetooth.IBluetooth");

    Class[] s2 = c3.getDeclaredClasses();

    Class c = s2[0];
    Method m = c.getDeclaredMethod("asInterface",IBinder.class);
    m.setAccessible(true);
    ibt = (IBluetooth) m.invoke(null, b);


} catch (Exception e) {
    Log.e("flowlab", "Erroraco!!! " + e.getMessage());
}

return ibt;
}

/ * 的**的 * 的**的 * 的**的 * 的** IBluetooth.aidl的的 * 的**的 * 的**的 * 的**的 * 的** /

/************ IBluetooth.aidl ************/

package android.bluetooth;

import android.bluetooth.IBluetoothCallback;
import android.os.ParcelUuid;

/**
  * System private API for talking with the Bluetooth service.
  *
  * {@hide}
  */
 interface IBluetooth
 {
   boolean isEnabled();
   int getBluetoothState();
   boolean enable();
   boolean disable(boolean persistSetting);

   String getAddress();
   String getName();
   boolean setName(in String name);

   int getScanMode();
   boolean setScanMode(int mode, int duration);

   int getDiscoverableTimeout();
   boolean setDiscoverableTimeout(int timeout);

   boolean startDiscovery();
   boolean cancelDiscovery();
   boolean isDiscovering();

   boolean createBond(in String address);
   boolean cancelBondProcess(in String address);
   boolean removeBond(in String address);
   String[] listBonds();
   int getBondState(in String address);

   String getRemoteName(in String address);
   int getRemoteClass(in String address);
   ParcelUuid[] getRemoteUuids(in String address);
   boolean fetchRemoteUuids(in String address, in ParcelUuid uuid, in IBluetoothCallback callback);
   int getRemoteServiceChannel(in String address, in ParcelUuid uuid);

   boolean setPin(in String address, in byte[] pin);
   boolean setPasskey(in String address, int passkey);
   boolean setPairingConfirmation(in String address, boolean confirm);
   boolean cancelPairingUserInput(in String address);

   boolean setTrust(in String address, in boolean value);
   boolean getTrustState(in String address);

   int addRfcommServiceRecord(in String serviceName, in ParcelUuid uuid, int channel, IBinder b);
   void removeServiceRecord(int handle);
}

/ * 的**的 * 的**的 * 的**的 * 的** IBluetoothCallback.aidl的的 * 的**的 * 的**的 * 的**的 * 的** /

/************ IBluetoothCallback.aidl ************/

    package android.bluetooth;

    /**
     * System private API for Bluetooth service callbacks.
     *
     * {@hide}
     */
    interface IBluetoothCallback
    {
        void onRfcommChannelFound(int channel);
    }
阅读全文

相关推荐

最新文章