OK, here's a real-life example. I just bought a Reveware BT flexible keyboard from UKHDMI in Oxford (and kudos to them for taking PayPal and letting me collect the same day from their warehouse
It's very nice, and as a test, it connected immediately with my Ubuntu laptop using the provided BT USB dongle.
On my HTC Hero (recently updated with whatever it was that Heros were updated with in late Aug 2010 -- I can't find any details of exactly
what was updated
it can be paired and nothing else because the Hero has no BT application software of its own.
Reveware provided a mini-CD with a file called android.apk and a text doc which explained how to copy it to the Hero and install it. That went fine, no problems. The doc goes on to say:
...after that, your mobile will ask you restart, please follow the instruction to let your mobile restart.
4.A dialog box will be given after your mobile restart which need you make a choose whether you want to close the driver or let the driver run in background, please let the driver run in background otherwise your bluetooth keyboard can not be communicated with your mobile.
So I restarted, but I never got any prompt about the driver. The app executes, but clicking on the Scan button just spins its wheels and never connects...presumably because the driver daemon never got started.
Reveware doesn't have a web site, but the (nicely made) box says the trademark is owner by Knoxed, the same company that owns UKHDMI, so I'll try them for support on Monday.
In the meantime, as I know zilch about the insides of a .apk file, and even less about writing Android daemons, does anyone know if there is a way to force one to start at boot time? The .apk file contains the following:
Archive: /media/cdrom0/android/android.apk
Code:
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
1276 Stored 1276 0% 2009-10-11 17:53 43e53a4d assets/chlayout.sh
33 Defl:N 30 9% 2009-10-26 19:10 38ffbf28 assets/h2w_headset.kl
198750 Defl:N 129735 35% 2009-10-26 19:10 2a76c837 assets/hid
12009 Defl:N 6798 43% 2009-10-26 19:10 9844c133 assets/mount
1699 Defl:N 534 69% 2009-10-26 19:10 01c94310 assets/qwerty.kl
68484 Defl:N 43071 37% 2009-10-26 19:10 5146a1a3 assets/toolbox
3165 Defl:N 588 81% 2009-10-26 19:10 049b5b52 assets/trout-keypad-qwertz.kl
3132 Defl:N 583 81% 2009-10-26 19:10 a8539ed7 assets/trout-keypad-v2.kl
3165 Defl:N 588 81% 2009-10-26 19:10 049b5b52 assets/trout-keypad-v3.kl
1630 Defl:N 525 68% 2009-10-26 19:10 2e476ecc assets/trout-keypad.kl
3228 Stored 3228 0% 2009-10-26 19:10 d6b8c761 res/drawable/icon.png
31906 Stored 31906 0% 2009-10-26 19:10 32c73b47 res/drawable/logo.png
2300 Defl:N 725 69% 2009-10-26 19:10 d3fde34a res/layout/main.xml
2796 Defl:N 850 70% 2009-10-26 19:10 078950f4 res/layout/mainlandscape.xml
1936 Defl:N 682 65% 2009-10-26 19:10 27acbd07 AndroidManifest.xml
2088 Stored 2088 0% 2009-10-26 19:10 0c2186d9 resources.arsc
23424 Defl:N 10944 53% 2009-10-26 19:10 50f45e3b classes.dex
1278 Defl:N 620 52% 2009-10-26 19:10 4b3706fb META-INF/MANIFEST.MF
1331 Defl:N 669 50% 2009-10-26 19:10 6d14895e META-INF/CERT.SF
771 Defl:N 600 22% 2009-10-26 19:10 b5de526d META-INF/CERT.RSA
-------- ------- --- -------
364401 236040 35% 20 files
Which bits of this are likely culprits? It would be nice to find something that would not ask questions at boot time but just spawn the daemon.
///