Sunteți pe pagina 1din 4

Aim:- Program to implement a Bluetooth network with application as

transfer of a file from one device to another.

Program:-

private static Object lock=new Object();

try{
// 1 LocalDevice localDevice = LocalDevice.getLocalDevice();

// 2 DiscoveryAgent agent = localDevice.getDiscoveryAgent();

// 3 agent.startInquiry(DiscoveryAgent.GIAC, new MyDiscoveryListener());

try {

synchronized(lock){

lock.wait();}}

catch (InterruptedException e) {

e.printStackTrace();}

System.out.println("Device Inquiry Completed. "); }

catch (Exception e) {

e.printStackTrace();}

public class MyDiscoveryListener implements DiscoveryListener{@Override

public void deviceDiscovered(RemoteDevice btDevice, DeviceClass arg1) {

String name;

try { name = btDevice.getFriendlyName(false);

} catch (Exception e) {
name = btDevice.getBluetoothAddress();

} System.out.println("device found: " + name);

} @Override

public void inquiryCompleted(int arg0) {

synchronized(lock){

lock.notify();}} @Override

public void serviceSearchCompleted(int arg0, int arg1) { }@Override

public void servicesDiscovered(int arg0, ServiceRecord[] arg1) {}}

UUID[] uuidSet = new UUID[1];

uuidSet[0]=new UUID(0x1105); //OBEX Object Push service

int[] attrIDs = new int[] {

0x0100 // Service name};

LocalDevice localDevice = LocalDevice.getLocalDevice();

DiscoveryAgent agent = localDevice.getDiscoveryAgent();

agent.searchServices(null,uuidSet,device, new MyDiscoveryListener());

try {synchronized(lock){

lock.wait();}}

catch (InterruptedException e) {

e.printStackTrace();

return; }

@Override
public void serviceSearchCompleted(int arg0, int arg1) {

synchronized (lock) {

lock.notify(); }}@Override

public void servicesDiscovered(int arg0, ServiceRecord[] services) {

for (int i = 0; i < services.length; i++) {

String url = services[i].getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);

if (url == null) { continue;}

DataElement serviceName = services[i].getAttributeValue(0x0100);

if (serviceName != null) {

System.out.println("service " + serviceName.getValue() + " found " + url);

} else {System.out.println("service found " + url); }

if(serviceName.getValue().equals("OBEX Object Push")){

sendMessageToDevice(url); }}

private static void sendMessageToDevice(String serverURL){

try{

System.out.println("Connecting to " + serverURL);

ClientSession clientSession = (ClientSession) Connector.open(serverURL);

HeaderSet hsConnectReply = clientSession.connect(null);

if (hsConnectReply.getResponseCode() != ResponseCodes.OBEX_HTTP_OK) {

System.out.println("Failed to connect");
return;}

HeaderSet hsOperation = clientSession.createHeaderSet();

hsOperation.setHeader(HeaderSet.NAME, "Hello.txt");

hsOperation.setHeader(HeaderSet.TYPE, "text");

//Create PUT Operation

Operation putOperation = clientSession.put(hsOperation);

// Sending the message

byte data[] = "Hello World !!!".getBytes("iso-8859-1");

OutputStream os = putOperation.openOutputStream();

os.write(data);

os.close();

putOperation.close();

clientSession.disconnect(null);

clientSession.close();

catch (Exception e) {

e.printStackTrace();

S-ar putea să vă placă și