Return to Snippet

Revision: 41842
at September 17, 2011 00:13 by efor18


Updated Code
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(TAG, "Erroraco!!! " + e.getMessage());
		} 
		
		return ibt;
	}




/************************ 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 ************************/

package android.bluetooth;

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

Revision: 41841
at February 23, 2011 22:35 by efor18


Updated Code
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 ************************/

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 ************************/

package android.bluetooth;

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

Revision: 41840
at February 23, 2011 22:33 by efor18


Updated Code
@SuppressWarnings("rawtypes")
	private IBluetooth getIBluetooth() {

		IBluetooth ibt = null;

		try {

			@SuppressWarnings("unused")
			BluetoothAdapter bta = BluetoothAdapter.getDefaultAdapter();

			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 ************************/

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 ************************/

package android.bluetooth;

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

Revision: 41839
at February 23, 2011 22:31 by efor18


Initial Code
@SuppressWarnings("rawtypes")
	private IBluetooth getIBluetooth() {

		IBluetooth ibt = null;

		try {

			@SuppressWarnings("unused")
			BluetoothAdapter bta = BluetoothAdapter.getDefaultAdapter();

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

			Method m2 = c2.getDeclaredMethod("getService",String.class);
			IBinder b = (IBinder) m2.invoke(null, "bluetooth");//ServiceManager.getService("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 ************************/

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 ************************/

package android.bluetooth;

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

Initial URL

                                

Initial Description
You need to create a new package android.bluetooth in your project, and add the files: IBluetooth.aidl y IBluetoothCallback.aidl from the android source code

Initial Title
Get IBluetooth instance

Initial Tags
android

Initial Language
Java