Showing posts with label Android. Show all posts
Showing posts with label Android. Show all posts

Friday, November 26, 2010

ImageView.setImageURI does not work for file URIs

The following code fails:

File f = ...
ImageView imageView = ...
imgView.setImageURI(Uri.fromFile(f));

Workaround:

imgView.setImageDrawable(Drawable.createFromPath(f.getAbsolutePath()));

Friday, July 30, 2010

Android Bluetooth scanning

Discovering Bluetooth devices in Android is fairly simple, there are a lot of examples on the internet. What not all of those examples show you, and what got me into trouble was the bold bit in the code snippet below: I didn't realise that BluetoothAdapter.getDefaultAdapter() will return null when the user turns Bluetooth of in the phone settings. That got me a nice NullPointerException ...

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter == null) {
    // bluetooth disabled/not available
}

else {
    context.registerReceiver(new BluetoothListener(), new IntentFilter(BluetoothDevice.ACTION_FOUND));
    bluetoothAdapter.startDiscovery();
}


private class BluetoothListener extends BroadcastReceiver {
    @Override
    public void onReceive(Context c, Intent intent) {
        BluetoothDevice rbd = (BluetoothDevice)intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
        // ...
    }
}

Download an Android apk file from your site

This will probably never happen to you but, if you're in a similar situation as me, which is:
  • you've got a website
  • the website uses HTTPS and a self-signed certificate
  • you try to download an APK file from that website directly onto your phone
Then you'll notice that the download starts but never completes, you'll get a perpetual "Waiting for data connection..." message. Took me a while to find out, but this is a known issue.


Install Android USB Driver for Windows to connect to a HTC Wildfire

I tried to install the Android USB Driver for Windows whilst my HTC Wildfire was connected to my PC. This failed. After some head-scratching and searching, I found out that I had to change the android_winusb.inf file (which is part of the installation files) so that it would recognize the device:
[Google.NTx86]
; HTC Dream
%SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C01
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&MI_01
%SingleBootLoaderInterface% = USB_Install, USB\VID_0BB4&PID_0FFF
; HTC Magic
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C03&MI_01
; HTC Wildfire
%SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C8B
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C8B&MI_01
%SingleBootLoaderInterface% = USB_Install, USB\VID_0BB4&PID_0C8B

The bold lines are the ones I added: VID_0BB4 means Vendor ID = HTC, PID_0C8B means Product ID = Wildfire.