@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == DroidTooth.BLUETOOTH_DISCOVERABILITY_REQUEST) { if (resultCode == Activity.RESULT_OK) { updateConsole("This device will continue to be discoverable"); } else if (resultCode == Activity.RESULT_CANCELED) { DroidTooth.stopIndefiniteVisibility(); updateConsole("User cancelled discoverability"); } } }
/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try { DroidTooth.init(this); } catch (Exception e) { Log.d(Constants.DEBUG_DROIDTOOTH, "Error Initializing DroidTooth: " + e); } console = (EditText) findViewById(R.id.console); deviceListContainer = (LinearLayout) findViewById(R.id.deviceListContainer); extraButtons = (LinearLayout) findViewById(R.id.extra_buttons); action1 = (Button) findViewById(R.id.action1); action1.setText("Radius Scan"); action2 = (Button) findViewById(R.id.action2); action2.setText("Clear"); action3 = (Button) findViewById(R.id.action3); action3.setText("Become Host"); action4 = (Button) findViewById(R.id.action4); action4.setText("Join Host"); indefDisco = (Button) findViewById(R.id.action5); indefDisco.setText("Indefinite Discoverability"); becomeDisco = (Button) findViewById(R.id.action6); becomeDisco.setText("Become Visible"); nameChange1 = (Button) findViewById(R.id.action7); nameChange1.setText("Name1"); nameChange2 = (Button) findViewById(R.id.action8); nameChange2.setText("Name2"); // create the list adapter, for managing the device list listAdapter = new DeviceListAdapter(this); deviceListView = (ListView) findViewById(R.id.deviceList); deviceListView.setAdapter(listAdapter); action1.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { Log.d(Constants.DEBUG_DROIDTOOTH, "Action 1 Clicked"); DroidTooth.scanRadius( new DefaultCallback() { // called whenever scanning starts @Override public void callback() { updateConsole("Scanning started..."); } }, new DeviceFoundCallback() { @Override public void callback(Object o) { FoundDevice device = this.getFoundDeviceFromObject(o); listAdapter.addDevice(device); DroidToothActivity.this.updateConsole( "Found device: " + device.DEVICE_NAME + " with address: " + device.DEVICE.getAddress()); } }, true, null); } }); // clear screen action2.setOnClickListener( new OnClickListener() { @Override public void onClick(View arg0) { DroidToothActivity.this.clearScreens(); } }); indefDisco.setOnClickListener( new OnClickListener() { @Override public void onClick(View arg0) { DroidTooth.becomeVisibleIndefinitely(); } }); becomeDisco.setOnClickListener( new OnClickListener() { @Override public void onClick(View arg0) { updateConsole("Becoming visible..."); DroidTooth.becomeVisible(DroidTooth.DEFAULT_DISCOVERABLE_DURATION); } }); nameChange1.setOnClickListener( new OnClickListener() { @Override public void onClick(View arg0) { DroidTooth.changeDeviceName("Dr.Itan"); } }); nameChange2.setOnClickListener( new OnClickListener() { @Override public void onClick(View arg0) { DroidTooth.changeDeviceName("Dr.Dre"); } }); // become host action3.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { // initiate a new Host server with the specified broadcast name and 0th index key for // UUID DroidTooth.teeth( new DefaultCallback() { /** callback when the server starts */ @Override public void callback() { action3.setText("Turn Off Host"); action3.setOnClickListener( new OnClickListener() { @Override public void onClick(View arg0) { DroidTooth.unteeth(); } }); DroidToothActivity.this.updateConsole("DroidTooth Host Server Started..."); } }, new NewIncomingServerConnectionCallback() { @Override public void callback(Object o) { BluetoothSocket socket = this.getIncomingSocketFromObject(o); updateConsole( "New Incoming Connection to DroidToothServer from: " + socket.getRemoteDevice().getName() + " with address: " + socket.getRemoteDevice().getAddress()); try { socket.connect(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); } }); // join any public host action4.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { // initiate a new default Host server connectivity that has the specified suffix as in // Constants class. DroidTooth.tooth( new DefaultCallback() { // callback for when scanning starts @Override public void callback() { updateConsole("Scanning started..."); } }, new NewOutgoingClientConnectionCallback() { @Override public void callback(Object o) { final BluetoothSocket socket = this.getOutgoingSocketFromObject(o); if (socket != null) { runOnUiThread( new Runnable() { public void run() { updateConsole( "New Client handshake connection to Server " + socket.getRemoteDevice().getName() + " with address: " + socket.getRemoteDevice().getAddress() + "!!"); } }); } } }, new DeviceFoundCallback() { @Override public void callback(Object o) { FoundDevice scannedDevice = this.getFoundDeviceFromObject(o); listAdapter.addDevice(scannedDevice); deviceListView.invalidate(); DroidToothActivity.this.updateConsole( "Found device " + scannedDevice.DEVICE_NAME + " with address: " + scannedDevice.DEVICE.getAddress() + " while trying to tooth()."); } }, null); } }); console.setOnClickListener( new OnClickListener() { @Override public void onClick(View arg0) { if (currentOpenPane == 1) { expandPane(0); } else { expandPane(1); } } }); }
@Override public void onStop() { DroidTooth.releaseResources(true); super.onStop(); }