<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments for Wires Are Obsolete</title>
	<atom:link href="http://wiresareobsolete.com/wordpress/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://wiresareobsolete.com/wordpress</link>
	<description>Achieving the goal of cutting the cord through mobile applications and accessories</description>
	<lastBuildDate>Sat, 15 Oct 2011 16:10:03 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Comment on A Developer&#8217;s Adventures in Rooting by Dave</title>
		<link>http://wiresareobsolete.com/wordpress/2011/10/adventures-in-rooting/comment-page-1/#comment-241</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Sat, 15 Oct 2011 16:10:03 +0000</pubDate>
		<guid isPermaLink="false">http://wiresareobsolete.com/?p=244#comment-241</guid>
		<description>Mark -

As a respected member of the community, I greatly appreciate you taking the time to comment.  The backup feature is another in a long list of clever workarounds that we&#039;ve all implemented in apps; and that certainly does work.  However it is still a workaround.  The same is true with Romain&#039;s release of ViewServer.  I just hope for a day when we don&#039;t have to invent such things to jump over the hurdles.  Especially since Google was so helpful in the early day providing these tools.

Cheers,
Dave</description>
		<content:encoded><![CDATA[<p>Mark -</p>
<p>As a respected member of the community, I greatly appreciate you taking the time to comment.  The backup feature is another in a long list of clever workarounds that we&#8217;ve all implemented in apps; and that certainly does work.  However it is still a workaround.  The same is true with Romain&#8217;s release of ViewServer.  I just hope for a day when we don&#8217;t have to invent such things to jump over the hurdles.  Especially since Google was so helpful in the early day providing these tools.</p>
<p>Cheers,<br />
Dave</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A Developer&#8217;s Adventures in Rooting by Mark Murphy</title>
		<link>http://wiresareobsolete.com/wordpress/2011/10/adventures-in-rooting/comment-page-1/#comment-240</link>
		<dc:creator>Mark Murphy</dc:creator>
		<pubDate>Sat, 15 Oct 2011 15:59:33 +0000</pubDate>
		<guid isPermaLink="false">http://wiresareobsolete.com/?p=244#comment-240</guid>
		<description>&quot;Using DDMS File Explorer to view my application’s internal storage (the data directory where files and databases created by an application are stored)&quot;

Your application needs to implement a backup-to-external-storage feature. Expecting your users to root their devices to back up your data is unrealistic. And, as a side benefit, this eliminates the need for you to root the device to access those same files.

&quot;Using the HierarchyViewer tool to debug issues with layouts&quot;

As you noted, this can be resolved with ViewServer.

&#039;Running ADB in TCP/IP mode&quot;

While important for you, your use cases represent maybe 1-2% of the developer audience. Most people are developing pure-software apps for ordinary devices, where availability of the USB port is not an issue.

I&#039;m not saying that rooting is bad, nor that your dream of userdebug builds of Nexus devices is bad, nor that the pain you went through somehow didn&#039;t exist. However:

&quot;they are all a necessary part of developing applications&quot;

is over-stating the case IMHO. None are a necessary part of developing applications in general. Some, such as ADB over TCP/IP, may be necessary for developing certain applications, as is your case. All are certainly handy, but &quot;handy&quot; is short of &quot;necessary&quot; by a fairly wide margin.</description>
		<content:encoded><![CDATA[<p>&#8220;Using DDMS File Explorer to view my application’s internal storage (the data directory where files and databases created by an application are stored)&#8221;</p>
<p>Your application needs to implement a backup-to-external-storage feature. Expecting your users to root their devices to back up your data is unrealistic. And, as a side benefit, this eliminates the need for you to root the device to access those same files.</p>
<p>&#8220;Using the HierarchyViewer tool to debug issues with layouts&#8221;</p>
<p>As you noted, this can be resolved with ViewServer.</p>
<p>&#8216;Running ADB in TCP/IP mode&#8221;</p>
<p>While important for you, your use cases represent maybe 1-2% of the developer audience. Most people are developing pure-software apps for ordinary devices, where availability of the USB port is not an issue.</p>
<p>I&#8217;m not saying that rooting is bad, nor that your dream of userdebug builds of Nexus devices is bad, nor that the pain you went through somehow didn&#8217;t exist. However:</p>
<p>&#8220;they are all a necessary part of developing applications&#8221;</p>
<p>is over-stating the case IMHO. None are a necessary part of developing applications in general. Some, such as ADB over TCP/IP, may be necessary for developing certain applications, as is your case. All are certainly handy, but &#8220;handy&#8221; is short of &#8220;necessary&#8221; by a fairly wide margin.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Multiple Clickable Zones in ListView Items by Dave</title>
		<link>http://wiresareobsolete.com/wordpress/2011/08/clickable-zones-in-listview-items/comment-page-1/#comment-239</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Tue, 04 Oct 2011 12:14:46 +0000</pubDate>
		<guid isPermaLink="false">http://wiresareobsolete.com/wordpress/?p=186#comment-239</guid>
		<description>Karthikraj -

My suggestion to you, if you&#039;ve decided you must use ImageButton, would be to clear its focusable flag; as this is the root of the issue.  You could do this with either setFocusable(false) in Java or android:focusable=&quot;false&quot; in XML.</description>
		<content:encoded><![CDATA[<p>Karthikraj -</p>
<p>My suggestion to you, if you&#8217;ve decided you must use ImageButton, would be to clear its focusable flag; as this is the root of the issue.  You could do this with either setFocusable(false) in Java or android:focusable=&#8221;false&#8221; in XML.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Multiple Clickable Zones in ListView Items by Karthikraj</title>
		<link>http://wiresareobsolete.com/wordpress/2011/08/clickable-zones-in-listview-items/comment-page-1/#comment-238</link>
		<dc:creator>Karthikraj</dc:creator>
		<pubDate>Tue, 04 Oct 2011 09:11:49 +0000</pubDate>
		<guid isPermaLink="false">http://wiresareobsolete.com/wordpress/?p=186#comment-238</guid>
		<description>Very useful info. Many of us want to make multiple clickable in the listview. I was trying to fix this problem about to last 2,3 days... 

But i need to fix it with imageButton itself ... Can we have any options ... Let us find...

Any way Its really useful for me... Thanks</description>
		<content:encoded><![CDATA[<p>Very useful info. Many of us want to make multiple clickable in the listview. I was trying to fix this problem about to last 2,3 days&#8230; </p>
<p>But i need to fix it with imageButton itself &#8230; Can we have any options &#8230; Let us find&#8230;</p>
<p>Any way Its really useful for me&#8230; Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Quick Rounded Corners by Filippo</title>
		<link>http://wiresareobsolete.com/wordpress/2011/08/quick-rounded-corners/comment-page-1/#comment-237</link>
		<dc:creator>Filippo</dc:creator>
		<pubDate>Mon, 05 Sep 2011 22:46:28 +0000</pubDate>
		<guid isPermaLink="false">http://wiresareobsolete.com/wordpress/?p=183#comment-237</guid>
		<description>Thank you very much dude!</description>
		<content:encoded><![CDATA[<p>Thank you very much dude!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Multiple Clickable Zones in ListView Items by Shawn Lauzon</title>
		<link>http://wiresareobsolete.com/wordpress/2011/08/clickable-zones-in-listview-items/comment-page-1/#comment-236</link>
		<dc:creator>Shawn Lauzon</dc:creator>
		<pubDate>Wed, 31 Aug 2011 15:58:21 +0000</pubDate>
		<guid isPermaLink="false">http://wiresareobsolete.com/wordpress/?p=186#comment-236</guid>
		<description>Good article -- I was wanting to do this a couple weeks back and couldn&#039;t figure out. Next time I&#039;ll be able to do it.</description>
		<content:encoded><![CDATA[<p>Good article &#8212; I was wanting to do this a couple weeks back and couldn&#8217;t figure out. Next time I&#8217;ll be able to do it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Missing Manual: Android Bluetooth RFCOMM by Ian</title>
		<link>http://wiresareobsolete.com/wordpress/2010/11/android-bluetooth-rfcomm/comment-page-1/#comment-204</link>
		<dc:creator>Ian</dc:creator>
		<pubDate>Wed, 24 Nov 2010 15:24:24 +0000</pubDate>
		<guid isPermaLink="false">http://wiresareobsolete.com/wordpress/?p=134#comment-204</guid>
		<description>Dave,

Thanks for the great information here, I appreciate you sharing it. 

I&#039;ve been trying to find a way to initiate the low level ACL connection with a device that is &quot;paired, but not connected&quot; and within range.  I was hopeful that if I could identify the UUID and connect to it, that it would re-attempt the ACL, but alas it didn&#039;t.  

Thanks again!</description>
		<content:encoded><![CDATA[<p>Dave,</p>
<p>Thanks for the great information here, I appreciate you sharing it. </p>
<p>I&#8217;ve been trying to find a way to initiate the low level ACL connection with a device that is &#8220;paired, but not connected&#8221; and within range.  I was hopeful that if I could identify the UUID and connect to it, that it would re-attempt the ACL, but alas it didn&#8217;t.  </p>
<p>Thanks again!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Missing Manual: Android Bluetooth RFCOMM by Dave</title>
		<link>http://wiresareobsolete.com/wordpress/2010/11/android-bluetooth-rfcomm/comment-page-1/#comment-203</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Tue, 16 Nov 2010 15:15:29 +0000</pubDate>
		<guid isPermaLink="false">http://wiresareobsolete.com/wordpress/?p=134#comment-203</guid>
		<description>Hi Peter -

My first mention will be that throughout this process, Logcat is your friend.  The OS will log out when it fires the UUID broadcast, so you can see if it is really firing or if the application just isn&#039;t catching it.

I have noticed when trying to force the intent callback by calling BluetoothSocket.connect() with a fake UUID, the timing is a bit unruly on certain devices.  On the HTC Evo, for instance, it can sometimes take up to one minute after the OS logged the broadcast redirect before the BroadcastReceiver in the app picks it up.

I&#039;m going to assume though, based on your comment about null returns, that you are trying to access the hidden methods using reflection.  Here is some sample code to do this that I have tested on a handful of 2.2 devices, so perhaps the answer to your issues lies within there.  The first is using fetchUuidsWithSdp, which WILL force the system to fire the misspelled UUID broadcast intent that you can catch using the receiver code in the post (you may also try defining a BroadcastReceiver in your manifest, instead of inside an Activity class like I did):

&lt;code&gt;Class cl = Class.forName(&quot;android.bluetooth.BluetoothDevice&quot;);
Class[] par = {};
Method method = cl.getMethod(&quot;fetchUuidsWithSdp&quot;, par);
Object[] args = {};
method.invoke(device, args);
&lt;/code&gt;

Notice we don&#039;t pay attention to the return value from the invoked method, because the interesting information will come back when the intent is fired.  The next example is using getUuids, which WILL NOT fire said system intent.  The UUID data is returned as an array from this method call:

&lt;code&gt;Class cl = Class.forName(&quot;android.bluetooth.BluetoothDevice&quot;);
Class[] par = {};
Method method = cl.getMethod(&quot;getUuids&quot;, par);
Object[] args = {};
ParcelUuid[] retval = (ParcelUuid[])method.invoke(device, args);
&lt;/code&gt;

Hope some of that is useful!</description>
		<content:encoded><![CDATA[<p>Hi Peter -</p>
<p>My first mention will be that throughout this process, Logcat is your friend.  The OS will log out when it fires the UUID broadcast, so you can see if it is really firing or if the application just isn&#8217;t catching it.</p>
<p>I have noticed when trying to force the intent callback by calling BluetoothSocket.connect() with a fake UUID, the timing is a bit unruly on certain devices.  On the HTC Evo, for instance, it can sometimes take up to one minute after the OS logged the broadcast redirect before the BroadcastReceiver in the app picks it up.</p>
<p>I&#8217;m going to assume though, based on your comment about null returns, that you are trying to access the hidden methods using reflection.  Here is some sample code to do this that I have tested on a handful of 2.2 devices, so perhaps the answer to your issues lies within there.  The first is using fetchUuidsWithSdp, which WILL force the system to fire the misspelled UUID broadcast intent that you can catch using the receiver code in the post (you may also try defining a BroadcastReceiver in your manifest, instead of inside an Activity class like I did):</p>
<p><code>Class cl = Class.forName("android.bluetooth.BluetoothDevice");<br />
Class[] par = {};<br />
Method method = cl.getMethod("fetchUuidsWithSdp", par);<br />
Object[] args = {};<br />
method.invoke(device, args);<br />
</code></p>
<p>Notice we don&#8217;t pay attention to the return value from the invoked method, because the interesting information will come back when the intent is fired.  The next example is using getUuids, which WILL NOT fire said system intent.  The UUID data is returned as an array from this method call:</p>
<p><code>Class cl = Class.forName("android.bluetooth.BluetoothDevice");<br />
Class[] par = {};<br />
Method method = cl.getMethod("getUuids", par);<br />
Object[] args = {};<br />
ParcelUuid[] retval = (ParcelUuid[])method.invoke(device, args);<br />
</code></p>
<p>Hope some of that is useful!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Missing Manual: Android Bluetooth RFCOMM by Peter</title>
		<link>http://wiresareobsolete.com/wordpress/2010/11/android-bluetooth-rfcomm/comment-page-1/#comment-202</link>
		<dc:creator>Peter</dc:creator>
		<pubDate>Tue, 16 Nov 2010 00:58:01 +0000</pubDate>
		<guid isPermaLink="false">http://wiresareobsolete.com/wordpress/?p=134#comment-202</guid>
		<description>Hi

I tried using your method to get the UUID of a bluetooth enabled weightscale but no luck. It all returns null. In fact the filter &quot;android.bleutooth.device.action.UUID&quot; is never called. I added another filter BluetoothDevice.ACTION_ACL_CONNECTED to be sure i get a connection and that works. But still the UUID is null. I am testing this on a HTC Desire Android 2.2. 

I agree that is it very hard to deal with incoming bluetooth connections in Android. It was so much easier in Windows Mobile 6.5!</description>
		<content:encoded><![CDATA[<p>Hi</p>
<p>I tried using your method to get the UUID of a bluetooth enabled weightscale but no luck. It all returns null. In fact the filter &#8220;android.bleutooth.device.action.UUID&#8221; is never called. I added another filter BluetoothDevice.ACTION_ACL_CONNECTED to be sure i get a connection and that works. But still the UUID is null. I am testing this on a HTC Desire Android 2.2. </p>
<p>I agree that is it very hard to deal with incoming bluetooth connections in Android. It was so much easier in Windows Mobile 6.5!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A Short Note About Modal Presentation by Jason Ripley</title>
		<link>http://wiresareobsolete.com/wordpress/2010/08/modal-presentation/comment-page-1/#comment-201</link>
		<dc:creator>Jason Ripley</dc:creator>
		<pubDate>Tue, 24 Aug 2010 19:35:05 +0000</pubDate>
		<guid isPermaLink="false">http://wiresareobsolete.com/wordpress/?p=117#comment-201</guid>
		<description>Thank you for posting this explanation.  It clarified the modal presentation of views for me.</description>
		<content:encoded><![CDATA[<p>Thank you for posting this explanation.  It clarified the modal presentation of views for me.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

