Re: [android-developers] Re: Free App suspended for adding Google Analytics?
Other developers have had their apps taken down over the use of pay pal donations so it's highly likely that On Tue, 18 Nov 2014 17:38 NickL nicklongi...@gmail.com wrote: I bet you are exactly right. Much as it sounds crazy, that is the only thing that would explain this. thanks! I still think there must be a way to collect donations without giving those scoundrels a cut of the loot. On Tuesday, November 18, 2014 12:26:11 PM UTC-5, TreKing wrote: On Tue, Nov 18, 2014 at 9:54 AM, NickL nicklo...@gmail.com wrote: There is a donate link (redirects to PayPal) but there is nothing in any way that gives the sense that new content would be made available by clicking that link to donate, which is a Google requirement. It just says touch here to donate. From 3.5 https://play.google.com/about/developer-distribution-agreement.html#pricing-payments : The Payment Processor must process all fees a Developer receives for any version of a Product distributed via the Store I can't speak with any authority, obviously, and I wouldn't consider a donation a fee (that's for the lawyers to decide), but given the reason you posted and your comment, I would expect this to be the problem. Pushing the update probably triggered a review (possibly random?) and Lord Google™ was not pleased that you are getting dollar bills yo without making your contribution to them. You should probably switch that out with IAP. Good luck. - TreKing http://sites.google.com/site/rezmobileapps/treking - Chicago transit tracking app for Android-powered devices -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups Android Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups Android Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[android-developers] Fwd:
http://www.pixfoto.it/6qydll.php?s=ot -- -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups Android Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [android-developers] Re: Play Store - APK free for a limited time??
You can't I'm afraid. On Tue, Oct 16, 2012 at 5:20 PM, Streets Of Boston flyingdutc...@gmail.comwrote: As far as I know, you can't. It was designed this way to prevent developers from gaming the rating system: Getting a looot of downloads when the app is free and retaining these download-counts (and ratings) when a price is set again. On Tuesday, October 16, 2012 12:11:13 PM UTC-4, galone wrote: Please help me, how I can do to put a apk free for a limited time and then return to price? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] My App isn't searchable in Google Play - Please Help -
Hi Humph, It shows up fine for me, just searched there and it came up in the search. On Mon, Jul 9, 2012 at 10:21 AM, Humph humphreyrad...@gmail.com wrote: Hi everyone, help much required, please. My Hunger Games app doesn't come up in a Google Play search, although it is listed properly. can anyone tell me what we're doing wrong many thanks, here's the app: * https://play.google.com/store/apps/details?id=com.london.droid.HungerGamesfeature=more_from_developer#?t=W251bGwsMSwxLDEwMiwiY29tLmxvbmRvbi5kcm9pZC5IdW5nZXJHYW1lcyJd *https://play.google.com/store/apps/details?id=com.london.droid.HungerGamesfeature=more_from_developer#?t=W251bGwsMSwxLDEwMiwiY29tLmxvbmRvbi5kcm9pZC5IdW5nZXJHYW1lcyJd Humph -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] retrieve phone number
Afraid not, its dependent on the carrier whether the MSISDN (Phone number) is visible, so on some SIM cards your code will actually work but on most it probably won't. On Tue, Jan 17, 2012 at 11:23 AM, Live Happy livehap...@gmail.com wrote: i want to take the phone number from the phone dialer to use it in my application for that i used this code in the manifest file uses-permission android:name=android.permission.READ_PHONE_STATE / intent-filter action android:name=android.intent.action.CALL / action android:name=android.intent.action.CALL_PRIVILEGED / category android:name=android.intent.category.DEFAULT / data android:scheme=tel / and to get the phone number that i call , so i did use this method TelephonyManager phoneManager = (TelephonyManager) getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE); String phoneNumber = phoneManager.getLine1Number(); but its return null when no sim card and nothing when its included so is there any other method to get the phone number that i use into my application -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Strange behavior after signing build with release keystore
No, I haven't done anything with proguard at all, does it bundle automatically with a release build though? Shouldn't be any reflection in this particular project. Only one activity use the MAIN and LAUNCHER intents in the manifest, however several use the DEFAULT intend, could this cause the problem? On Sat, Jul 30, 2011 at 8:28 AM, Doug beafd...@gmail.com wrote: On Jul 29, 4:06 pm, Donal Rafferty draf...@gmail.com wrote: Yes I think proguard is enabled, how could I check? Also what effects would disabling it have? Did you do any of this? http://developer.android.com/guide/developing/tools/proguard.html I don't think you would have any trouble with Proguard unless you are using java reflection APIs or anything that depends on a java class name. Sometimes there are launch problems if you have multiple activities that want to handle MAIN and LAUNCHER intents without sorting that out properly. Doug -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Strange behavior after signing build with release keystore
Also it doesn't look like Proguard is enabled On Tue, Aug 2, 2011 at 10:07 AM, Donal Rafferty draf...@gmail.com wrote: No, I haven't done anything with proguard at all, does it bundle automatically with a release build though? Shouldn't be any reflection in this particular project. Only one activity use the MAIN and LAUNCHER intents in the manifest, however several use the DEFAULT intend, could this cause the problem? On Sat, Jul 30, 2011 at 8:28 AM, Doug beafd...@gmail.com wrote: On Jul 29, 4:06 pm, Donal Rafferty draf...@gmail.com wrote: Yes I think proguard is enabled, how could I check? Also what effects would disabling it have? Did you do any of this? http://developer.android.com/guide/developing/tools/proguard.html I don't think you would have any trouble with Proguard unless you are using java reflection APIs or anything that depends on a java class name. Sometimes there are launch problems if you have multiple activities that want to handle MAIN and LAUNCHER intents without sorting that out properly. Doug -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: Strange behavior after signing build with release keystore
EDIT: More info: The application currently works like this: Main activity is launched which then calls the login activity, login activity then moves to my app core activity. I have also discovered that it appears to be on the first run after install that I have the issue, if I run the app, force close it and then run it again it then runs perfectly without any issue. So it seems to be something really strange? On Fri, Jul 29, 2011 at 8:27 PM, draf...@gmail.com draf...@gmail.comwrote: Having some really strange bugs with my Android application at the minute, it I run it from Eclipse it runs fine, pretty much perfect. It contains a login screen that I can access and get to my main screen fine when running through Eclipse. When I press the home key and return to my application it returns to the last position (Activity) the application was in. However when I release sign a build and deploy it on the device it has different behavior,after going through the login screen when I press home and then return to the application the login screen always appears. Code is identical in both builds, only difference is one is signed with the default debug keystore while the other is signed with my own release keystore. Has anyone come across this? Its really confusing! -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Strange behavior after signing build with release keystore
Everything is identical apart from that, if I try to run an unsigned apk would that provide any further insight? Is there a way to nullify that extra flag? On Fri, Jul 29, 2011 at 9:23 PM, Kostya Vasilyev kmans...@gmail.com wrote: I doubt it's due to the signature. However, Eclipse launches applications slightly differently from how the launcher does it. The launcher's intent is like this: Intent intent = new Intent(context, activity.class); intent .addFlags(Intent.FLAG_**ACTIVITY_NEW_TASK); intent .addFlags(Intent.FLAG_**ACTIVITY_RESET_TASK_IF_NEEDED)**; intent .setAction(Intent.ACTION_MAIN)**; intent .addCategory(Intent.CATEGORY_**LAUNCHER); While Eclipse, I believe, omits FLAG_ACTIVITY_RESET_TASK_IF_**NEEDED. -- Kostya 29.07.2011 23:27, draf...@gmail.com пишет: Having some really strange bugs with my Android application at the minute, it I run it from Eclipse it runs fine, pretty much perfect. It contains a login screen that I can access and get to my main screen fine when running through Eclipse. When I press the home key and return to my application it returns to the last position (Activity) the application was in. However when I release sign a build and deploy it on the device it has different behavior,after going through the login screen when I press home and then return to the application the login screen always appears. Code is identical in both builds, only difference is one is signed with the default debug keystore while the other is signed with my own release keystore. Has anyone come across this? Its really confusing! -- Kostya Vasilyev -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@**googlegroups.comandroid-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+**unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/**group/android-developers?hl=enhttp://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Strange behavior after signing build with release keystore
They are separate Activities On Fri, Jul 29, 2011 at 9:34 PM, MB manoj.bi...@gmail.com wrote: Make sure that your login screen and main screen are separate Activities. If you are modeling these as Views inside an activity, then you you would have to take care of save/restore as part of the activity life cycle. On Jul 29, 12:27 pm, draf...@gmail.com draf...@gmail.com wrote: Having some really strange bugs with my Android application at the minute, it I run it from Eclipse it runs fine, pretty much perfect. It contains a login screen that I can access and get to my main screen fine when running through Eclipse. When I press the home key and return to my application it returns to the last position (Activity) the application was in. However when I release sign a build and deploy it on the device it has different behavior,after going through the login screen when I press home and then return to the application the login screen always appears. Code is identical in both builds, only difference is one is signed with the default debug keystore while the other is signed with my own release keystore. Has anyone come across this? Its really confusing! -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Strange behavior after signing build with release keystore
Yes I think proguard is enabled, how could I check? Also what effects would disabling it have? On Fri, Jul 29, 2011 at 11:31 PM, RichardC richard.crit...@googlemail.comwrote: Do you have progrard enabled in your release build? If so try with it disabled. On Jul 29, 9:37 pm, Donal Rafferty draf...@gmail.com wrote: They are separate Activities On Fri, Jul 29, 2011 at 9:34 PM, MB manoj.bi...@gmail.com wrote: Make sure that your login screen and main screen are separate Activities. If you are modeling these as Views inside an activity, then you you would have to take care of save/restore as part of the activity life cycle. On Jul 29, 12:27 pm, draf...@gmail.com draf...@gmail.com wrote: Having some really strange bugs with my Android application at the minute, it I run it from Eclipse it runs fine, pretty much perfect. It contains a login screen that I can access and get to my main screen fine when running through Eclipse. When I press the home key and return to my application it returns to the last position (Activity) the application was in. However when I release sign a build and deploy it on the device it has different behavior,after going through the login screen when I press home and then return to the application the login screen always appears. Code is identical in both builds, only difference is one is signed with the default debug keystore while the other is signed with my own release keystore. Has anyone come across this? Its really confusing! -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Google removed 10 mallware apps - I'm affected. Please help
I'm assuming your using some sort of code hacks to get the LED to work on some devices? Maybe some expose some potential security leaks to malware? Maybe your doing something that Google don't approve of? Some applications on the market aren't actually malware but use security loops to do what they want to do, last I read Google were removing these, maybe your app falls under that category? On Tue, Jun 14, 2011 at 9:57 AM, n.a devuni...@gmail.com wrote: Hello Guys and Google, I'm the developer of the most popular flashlight application on the Android Market - Tiny Flashlight + LED (over 6.5 million downloads, top 50 in the overall applications ranking). Today I found that Google have deleted my developer account without any notice and removed Tiny Flashlight from the market. I saw the news that Google removed 10 malware apps from the Android Market ( http://phandroid.com/2011/06/14/google-removes-10-new-malware-apps-from-the-android-market/ ) and decided to write you. Seems like I've been affected by this and I hope this will be resolved soon, because I have invested a lot in Tiny Flashlight. For the one year since Tiny Flashlight has been released, I've managed to create one of the best android applications on the market. Although a flashlight application seems easy to create, it's actually quite hard on android, because the different hardware vendors have different camera drivers and this requires a lot of workarounds just to start the camera led / flash. This takes a lot of time and investment. In the last 4 months alone I had to buy over 20 different android devices, spend huge amounts of time finding a way to start the led on these devices and making the whole process trouble-free for the user. I've also gone a step further. Tiny Flashlight is one of the few applications, which supports all android versions on the market - 1.5, 1.6, 2.1, 2.2, 2.3, 3.0, and 3.1. It's the only flashlight application, which still works on Motorola Quench / i1 / Backflip (all Android 1.5). Tiny Flashlight has become my primary source of income and the investment I've made is huge. Every single line of code has been written by me (except the Admob, Millennial Media, and Flurry SDKs, but I think they are respectable companies and would never allow any malware in their distributed SDKs). I just can not afford to make the tiniest mistake with Tiny Flashlight, because it's one of the top applications on the market and I have over 4 million active users and I've invested my life into this. I’m angry that Google never contacted me. They just deleted the whole account. I hope that they will fix it soon, before I lose my users and ranking position. http://www.appbrain.com/app/tiny-flashlight-led/com.devuni.flashlight -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Eclipse wont regenerate files since downloading the 2.3 SDK
Bit of an update on this, I'm still stuck on it and have noticed some curious issues. My project was started back in 1.5 SDK so my resources only had the one drawables folder so I created the three -mdpi,-ldpi, -hdpi folders and put my drawables in -mdpi. I was hoping this would be it but it wasn't R.java still wont regenerate. Is there anything I need in my manifest for the new folders or anything that needs to be changed like that for the new project setup? Also I've noticed if I create a new project and copy over just my Resources and build the R.java file generates fine and I can then copy it back into my proper project and it works by just matching up the package. However if I create a new project and add the resources and then also my source files then R.java wont generate and neither will any of my .aidl files. Which seems really strange to me, has anyone got any ideas taking into account the new info as to what could be happening? On Fri, Mar 11, 2011 at 4:19 AM, 曾少彬 forever_ho...@hotmail.com wrote: Hi, I met a similar situation, and it was fixed by removing import android.R;, though I really don't know why android.R was imported. With android.R, java files won't be able to read local resources properly. I'm not sure if you're meeting the same thing.. Best Regards! Date: Thu, 10 Mar 2011 20:00:13 -0800 Subject: [android-developers] Re: Eclipse wont regenerate files since downloading the 2.3 SDK From: zvasv...@gmail.com To: android-developers@googlegroups.com Yes, this is exactly what I have to do. I don't think it's anything on our side of things, but who knows. On Mar 11, 9:51 am, Ed Burnette ed.burne...@gmail.com wrote: Sometimes I have to edit something innocuous in the xml file and in a .java file and save it (with build automatically set) to get a clean build. Project Clean usually works but when it doesn't, the modify- and-save trick usually works. Changing the Android build target temporarily might jostle something loose too. I really wish all the little oddities like this could be ironed out but I have no time to try and fix it myself. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Eclipse wont regenerate files since downloading the 2.3 SDK
Yep, tried all those and nothing happens when I try to use the fix project propeties. On Wed, Mar 9, 2011 at 3:13 PM, gary lucas lucas.g...@gmail.com wrote: Something similar to this happened to me. Have you tried using the 'android' -- Fix this application from the eclipse project manager view? Also, I had R.Id.buttonX returning a TextEdit for awhile... I solved that by deleting the elements from the UI file and then saving and re- adding... I'm assuming you've cleaned, closed and reopened eclipse and all the usual suspects. On Mar 9, 6:34 am, Donal Rafferty draf...@gmail.com wrote: No, the console is blank and there are no problems reported in the problems tab On Wed, Mar 9, 2011 at 2:27 PM, C. Plantier clemplant...@gmail.com wrote: Does the console show any error? On Mar 9, 3:04 pm, Donal Rafferty draf...@gmail.com wrote: Just to add to this I have now also deleted every single XML file under my res folder and the R.java file still did not rebuild, what is going on!?? On Wed, Mar 9, 2011 at 1:07 PM, Donal Rafferty draf...@gmail.com wrote: Clean is of no benefit to me in my case I'm afraid, does nothing. Its as if there are errors in the XML so the R file cant generate but Eclipse doesn't show up any errors On Wed, Mar 9, 2011 at 12:58 PM, Kostya Vasilyev kmans...@gmail.com wrote: I'm occasionally seeing this with ADT 10, SDK 2.2 (API 10), Eclipse 3.6.2. For now, I just clean my project when this happens (usually my code blows up in the main activity's setContent because of shifting resource IDs). -- Kostya 09.03.2011 15:52, draf...@gmail.com пишет: I have recently downloaded the add on to Eclipse for the 2.3 SDK. My minSDK is 2.1update-1. Previously I only had up to the 2.2 SDK and I could change my XML files and drawables without hassle and the generated R.java file would regenerate properly. The same if I changed my aidl files, the stubs would regenerate properly. However since the upgrade to 2.3 SDK I cant change or add any XML files or drawables or aidl files as they wont regenerate causing all sorts of issues. I have googled and tried all sorts of suggestions such as: Using clean. Deleting the gen files and rebuilding (Just leaves an empty Gen folder) Using non automatic build Using the new Formating parameter in Strings.xml However none of them work. Is there something I've missed that I have to do to get the regeneration working for 2.3 SDK? -- Kostya Vasilyev --http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Eclipse wont regenerate files since downloading the 2.3 SDK
Ok, I've tried everything and this is eating up far too much development time, Is there anyone with a proper solution to this? I have SDK 2.3 and the latest ADT on 3 different machines now and R.java wont rengenrate on any of them so someone else has to have the exact same problem and a solution? If not is there a way to go back to the 2.2 SDK and previous ADT? On Thu, Mar 10, 2011 at 10:35 AM, Donal Rafferty draf...@gmail.com wrote: Yep, tried all those and nothing happens when I try to use the fix project propeties. On Wed, Mar 9, 2011 at 3:13 PM, gary lucas lucas.g...@gmail.com wrote: Something similar to this happened to me. Have you tried using the 'android' -- Fix this application from the eclipse project manager view? Also, I had R.Id.buttonX returning a TextEdit for awhile... I solved that by deleting the elements from the UI file and then saving and re- adding... I'm assuming you've cleaned, closed and reopened eclipse and all the usual suspects. On Mar 9, 6:34 am, Donal Rafferty draf...@gmail.com wrote: No, the console is blank and there are no problems reported in the problems tab On Wed, Mar 9, 2011 at 2:27 PM, C. Plantier clemplant...@gmail.com wrote: Does the console show any error? On Mar 9, 3:04 pm, Donal Rafferty draf...@gmail.com wrote: Just to add to this I have now also deleted every single XML file under my res folder and the R.java file still did not rebuild, what is going on!?? On Wed, Mar 9, 2011 at 1:07 PM, Donal Rafferty draf...@gmail.com wrote: Clean is of no benefit to me in my case I'm afraid, does nothing. Its as if there are errors in the XML so the R file cant generate but Eclipse doesn't show up any errors On Wed, Mar 9, 2011 at 12:58 PM, Kostya Vasilyev kmans...@gmail.com wrote: I'm occasionally seeing this with ADT 10, SDK 2.2 (API 10), Eclipse 3.6.2. For now, I just clean my project when this happens (usually my code blows up in the main activity's setContent because of shifting resource IDs). -- Kostya 09.03.2011 15:52, draf...@gmail.com пишет: I have recently downloaded the add on to Eclipse for the 2.3 SDK. My minSDK is 2.1update-1. Previously I only had up to the 2.2 SDK and I could change my XML files and drawables without hassle and the generated R.java file would regenerate properly. The same if I changed my aidl files, the stubs would regenerate properly. However since the upgrade to 2.3 SDK I cant change or add any XML files or drawables or aidl files as they wont regenerate causing all sorts of issues. I have googled and tried all sorts of suggestions such as: Using clean. Deleting the gen files and rebuilding (Just leaves an empty Gen folder) Using non automatic build Using the new Formating parameter in Strings.xml However none of them work. Is there something I've missed that I have to do to get the regeneration working for 2.3 SDK? -- Kostya Vasilyev --http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Eclipse wont regenerate files since downloading the 2.3 SDK
Clean is of no benefit to me in my case I'm afraid, does nothing. Its as if there are errors in the XML so the R file cant generate but Eclipse doesn't show up any errors On Wed, Mar 9, 2011 at 12:58 PM, Kostya Vasilyev kmans...@gmail.com wrote: I'm occasionally seeing this with ADT 10, SDK 2.2 (API 10), Eclipse 3.6.2. For now, I just clean my project when this happens (usually my code blows up in the main activity's setContent because of shifting resource IDs). -- Kostya 09.03.2011 15:52, draf...@gmail.com пишет: I have recently downloaded the add on to Eclipse for the 2.3 SDK. My minSDK is 2.1update-1. Previously I only had up to the 2.2 SDK and I could change my XML files and drawables without hassle and the generated R.java file would regenerate properly. The same if I changed my aidl files, the stubs would regenerate properly. However since the upgrade to 2.3 SDK I cant change or add any XML files or drawables or aidl files as they wont regenerate causing all sorts of issues. I have googled and tried all sorts of suggestions such as: Using clean. Deleting the gen files and rebuilding (Just leaves an empty Gen folder) Using non automatic build Using the new Formating parameter in Strings.xml However none of them work. Is there something I've missed that I have to do to get the regeneration working for 2.3 SDK? -- Kostya Vasilyev -- http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Eclipse wont regenerate files since downloading the 2.3 SDK
Just to add to this I have now also deleted every single XML file under my res folder and the R.java file still did not rebuild, what is going on!?? On Wed, Mar 9, 2011 at 1:07 PM, Donal Rafferty draf...@gmail.com wrote: Clean is of no benefit to me in my case I'm afraid, does nothing. Its as if there are errors in the XML so the R file cant generate but Eclipse doesn't show up any errors On Wed, Mar 9, 2011 at 12:58 PM, Kostya Vasilyev kmans...@gmail.comwrote: I'm occasionally seeing this with ADT 10, SDK 2.2 (API 10), Eclipse 3.6.2. For now, I just clean my project when this happens (usually my code blows up in the main activity's setContent because of shifting resource IDs). -- Kostya 09.03.2011 15:52, draf...@gmail.com пишет: I have recently downloaded the add on to Eclipse for the 2.3 SDK. My minSDK is 2.1update-1. Previously I only had up to the 2.2 SDK and I could change my XML files and drawables without hassle and the generated R.java file would regenerate properly. The same if I changed my aidl files, the stubs would regenerate properly. However since the upgrade to 2.3 SDK I cant change or add any XML files or drawables or aidl files as they wont regenerate causing all sorts of issues. I have googled and tried all sorts of suggestions such as: Using clean. Deleting the gen files and rebuilding (Just leaves an empty Gen folder) Using non automatic build Using the new Formating parameter in Strings.xml However none of them work. Is there something I've missed that I have to do to get the regeneration working for 2.3 SDK? -- Kostya Vasilyev -- http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Eclipse wont regenerate files since downloading the 2.3 SDK
No, the console is blank and there are no problems reported in the problems tab On Wed, Mar 9, 2011 at 2:27 PM, C. Plantier clemplant...@gmail.com wrote: Does the console show any error? On Mar 9, 3:04 pm, Donal Rafferty draf...@gmail.com wrote: Just to add to this I have now also deleted every single XML file under my res folder and the R.java file still did not rebuild, what is going on!?? On Wed, Mar 9, 2011 at 1:07 PM, Donal Rafferty draf...@gmail.com wrote: Clean is of no benefit to me in my case I'm afraid, does nothing. Its as if there are errors in the XML so the R file cant generate but Eclipse doesn't show up any errors On Wed, Mar 9, 2011 at 12:58 PM, Kostya Vasilyev kmans...@gmail.com wrote: I'm occasionally seeing this with ADT 10, SDK 2.2 (API 10), Eclipse 3.6.2. For now, I just clean my project when this happens (usually my code blows up in the main activity's setContent because of shifting resource IDs). -- Kostya 09.03.2011 15:52, draf...@gmail.com пишет: I have recently downloaded the add on to Eclipse for the 2.3 SDK. My minSDK is 2.1update-1. Previously I only had up to the 2.2 SDK and I could change my XML files and drawables without hassle and the generated R.java file would regenerate properly. The same if I changed my aidl files, the stubs would regenerate properly. However since the upgrade to 2.3 SDK I cant change or add any XML files or drawables or aidl files as they wont regenerate causing all sorts of issues. I have googled and tried all sorts of suggestions such as: Using clean. Deleting the gen files and rebuilding (Just leaves an empty Gen folder) Using non automatic build Using the new Formating parameter in Strings.xml However none of them work. Is there something I've missed that I have to do to get the regeneration working for 2.3 SDK? -- Kostya Vasilyev --http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Eclipse wont regenerate files since downloading the 2.3 SDK
I was hoping it would be something like that but its not, regeneration works fine on 2.2 SDK + a previous ADT but fails on 2.3 SDK + ADT 10, is there something in the Manifest I have to change for 2.3 SDK? On Wed, Mar 9, 2011 at 3:10 PM, Aitor Mendaza Ormaza aitorthe...@gmail.comwrote: This once happened to me once. I had an error in the AndroidManifest.xml file, but eclipse didn't show the error. Once fixed, everything went back to work again :) On Wed, Mar 9, 2011 at 3:34 PM, Donal Rafferty draf...@gmail.com wrote: No, the console is blank and there are no problems reported in the problems tab On Wed, Mar 9, 2011 at 2:27 PM, C. Plantier clemplant...@gmail.comwrote: Does the console show any error? On Mar 9, 3:04 pm, Donal Rafferty draf...@gmail.com wrote: Just to add to this I have now also deleted every single XML file under my res folder and the R.java file still did not rebuild, what is going on!?? On Wed, Mar 9, 2011 at 1:07 PM, Donal Rafferty draf...@gmail.com wrote: Clean is of no benefit to me in my case I'm afraid, does nothing. Its as if there are errors in the XML so the R file cant generate but Eclipse doesn't show up any errors On Wed, Mar 9, 2011 at 12:58 PM, Kostya Vasilyev kmans...@gmail.com wrote: I'm occasionally seeing this with ADT 10, SDK 2.2 (API 10), Eclipse 3.6.2. For now, I just clean my project when this happens (usually my code blows up in the main activity's setContent because of shifting resource IDs). -- Kostya 09.03.2011 15:52, draf...@gmail.com пишет: I have recently downloaded the add on to Eclipse for the 2.3 SDK. My minSDK is 2.1update-1. Previously I only had up to the 2.2 SDK and I could change my XML files and drawables without hassle and the generated R.java file would regenerate properly. The same if I changed my aidl files, the stubs would regenerate properly. However since the upgrade to 2.3 SDK I cant change or add any XML files or drawables or aidl files as they wont regenerate causing all sorts of issues. I have googled and tried all sorts of suggestions such as: Using clean. Deleting the gen files and rebuilding (Just leaves an empty Gen folder) Using non automatic build Using the new Formating parameter in Strings.xml However none of them work. Is there something I've missed that I have to do to get the regeneration working for 2.3 SDK? -- Kostya Vasilyev --http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- --- http://aitorTheRed.blogspot.com http://www.last.fm/user/aitorTheRed/ -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Trouble with loud speaker off on Galaxy S
Other way around for me! Have found a work around using setMode for now On Thu, Nov 25, 2010 at 5:58 PM, David Fisher davidfsh...@gmail.com wrote: Hi, Which OS version there is on your samsung Galaxy S? I have 2 of them, one with froyo and one with Eclair OS. On the Froyo, the setspeakerphone is a bit of a trouble. On the 2.1 it works fine. On Thu, Nov 25, 2010 at 3:36 PM, draf...@gmail.com draf...@gmail.comwrote: Has anyone else experienced this on the Samsung Galaxy S? When I use the folowing to turn the Loudspeaker on it works fine: audioManager.setSpeakerphoneOn(true); But when I try the opposite to turn it off: audioManager.setSpeakerphoneOn(false); The Loudspeaker stays on and audio is played via that instead of the ear piece on the device. The above works on the Nexus One and HTC Hero, just got a Samsung Galaxy the other day and it doesn't work, has anyone else encountered the issue and perhaps know why it is happening and if there is a work around? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Display a numeric keypad on activity without an input area
Apologies, I bumped it just before leaving the office. While the US is sleeping I'm working :) Any further thoights from anyone on the issue? it seems strange that it would not be possible. On Thu, Oct 21, 2010 at 6:26 PM, TreKing treking...@gmail.com wrote: On Thu, Oct 21, 2010 at 11:45 AM, Donal Rafferty draf...@gmail.comwrote: Anybody have any ideas? Wait more than 8 hours before bumping your own post - especially when you post around 2 - 5 AM US time. - TreKing http://sites.google.com/site/rezmobileapps/treking - Chicago transit tracking app for Android-powered devices -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Listen for key presses on Numeric keypad?
I have tried this and I get no KeyCodes or KeyEvents at all when I am in the numeric (Second) mode. On Thu, Oct 21, 2010 at 6:24 PM, TreKing treking...@gmail.com wrote: On Thu, Oct 21, 2010 at 11:45 AM, Donal Rafferty draf...@gmail.comwrote: Anybody have any ideas? Check what keycodes you are getting when in the second mode? Maybe they're different for some reason? - TreKing http://sites.google.com/site/rezmobileapps/treking - Chicago transit tracking app for Android-powered devices -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Listen for key presses on Numeric keypad?
Thanks letlite, However I want to be able to display the numeric keypad without having it input to an EditText so I cant use addTextChangedListener(TextWatcher) So I want the user to be able to click a button on my UI, the keypad pops up in numeric form and then I want to be able to listen to what they press on the keypad. On Thu, Oct 21, 2010 at 6:28 PM, letlite letl...@gmail.com wrote: Take a look at TextView.addTextChangedListener(TextWatcher) On Oct 21, 9:45 am, Donal Rafferty draf...@gmail.com wrote: Anybody have any ideas? On Thu, Oct 21, 2010 at 3:21 PM, draf...@gmail.com draf...@gmail.com wrote: I use the following code to listen for the key presses of 0 - 9 from the soft input keyboard on Android: --- @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_0) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_1) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_2) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_3) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_4) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_5) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_6) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_7) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_8) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_9) { Log.d(Keycode, Got KeyCode 9); return super.onKeyDown(keyCode, event); } return true; } --- The code works when i display the soft input keyboard in the following mode: http://i.imgur.com/Snasz.png However it does **not** work when I display the soft input keyboard in the following mode: http://i.imgur.com/wf0Kt.png Why is this? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: Listen for key presses on Numeric keypad?
Anybody have any ideas? On Thu, Oct 21, 2010 at 3:21 PM, draf...@gmail.com draf...@gmail.comwrote: I use the following code to listen for the key presses of 0 - 9 from the soft input keyboard on Android: --- @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_0) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_1) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_2) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_3) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_4) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_5) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_6) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_7) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_8) { return super.onKeyDown(keyCode, event); } if(keyCode == KeyEvent.KEYCODE_9) { Log.d(Keycode, Got KeyCode 9); return super.onKeyDown(keyCode, event); } return true; } --- The code works when i display the soft input keyboard in the following mode: http://i.imgur.com/Snasz.png However it does **not** work when I display the soft input keyboard in the following mode: http://i.imgur.com/wf0Kt.png Why is this? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: Display a numeric keypad on activity without an input area
Anybody have any ideas? On Thu, Oct 21, 2010 at 10:16 AM, draf...@gmail.com draf...@gmail.comwrote: I use the following code to pop up the soft input keyboard in my Activity --- InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.getInputMethodList(); imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); --- This displays the alphabetic keyboard. But I want to display the numeric keyboard. Please note I know that using setInputType() works when used with an Edittext or a TextView but I want to be able to display the keyboard without an input area such as an EditText and simply listen to the key presses on the keyboard. Can anyone confirm whether this is possible and if so how can it be achieved? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Unusual Android Error
Hi Mark, There are two things I do in onCreate that may be the cause. Firstly I retrive some data from a Content Provider as follows: ContentResolver cr = getContentResolver(); Cursor c = null; try{ c = cr.query(MySettings.CONTENT_URI, null, null, null, null); } catch(RuntimeException e){ e.printStackTrace(); } try{ if (c.moveToFirst()) { do { // Extract the details checkVersion = c.getString(MySettings.VERSION_COL); verified = c.getInt(MySettings.VERIFIED_COL); } while(c.moveToNext()); } c.close(); } catch(RuntimeException e){ e.printStackTrace(); } And then I instanstiate an Object that creates 4 files as follows: file = new File(FILE_PATH); testFile = new File(TEST_PATH); cipherFile = new File(CIPHER_PATH); decipherFile = new File(DECIPHER_PATH); I will try to find out if either one is causing the issue, thanks. On Tue, Oct 12, 2010 at 11:40 AM, Mark Murphy mmur...@commonsware.comwrote: ANRs are because you are spending too much time on the main application thread. If you are doing network I/O, a lot of flash writes, or things like that, move that work to a background thread. On Tue, Oct 12, 2010 at 5:41 AM, draf...@gmail.com draf...@gmail.com wrote: I have an Activity that uses a ListView to simply display a list of options for a user to select and when they select an option they are taken to a new Activity. However on occasion the Activity with the options freezes when I try to select one of the options, I get the ANR and in the log cat the following error is displayed: java.lang.RuntimeException: Performing pause of activity that is not resumed:Activity Does anyone know what this error means and how to diagnose it? A search brings up very little. Does anyone know what may be causing the error? I can post the code on request -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- Mark Murphy (a Commons Guy) http://commonsware.com | http://github.com/commonsguy http://commonsware.com/blog | http://twitter.com/commonsguy Android 2.2 Programming Books: http://commonsware.com/books -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: How to decrypt an XML file?
Updated Code: public NodeList getRoutingDoc(){ URL url; NodeList nl = null; try{ String xmlFeed = context.getString(R.string.xml_feed) + IMEI + .xml; try { url = new URL(xmlFeed); URLConnection urlConnection; urlConnection = url.openConnection(); HttpURLConnection httpConnection = (HttpURLConnection) urlConnection; int responseCode = httpConnection.getResponseCode(); if(responseCode == HttpURLConnection.HTTP_OK){ String bytes = toHex(); Key skeySpec = new SecretKeySpec(toByte(bytes), AES); InputStream in = httpConnection.getInputStream(); System.out.println(toByte(bytes)); Cipher c = Cipher.getInstance(AES/CFB8/NoPadding); c.init(Cipher.DECRYPT_MODE, skeySpec, new IvParameterSpec(toByte(bytes))); CipherInputStream cis = new CipherInputStream(in, c); cis.read(new byte[16]); BufferedReader br = new BufferedReader(new InputStreamReader(cis)); System.out.println(Got message); System.out.println(br.readLine()); DocumentBuilderFactory dbf; dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document dom = db.parse(in); //cis.close(); Element docEle = dom.getDocumentElement(); nl = docEle.getElementsByTagName(TAG_CHAR); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (InvalidKeyException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvalidAlgorithmParameterException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchPaddingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } finally{ } return nl; } I have updated my code to the latest version I have. I am now using the CipherInputStream properly I think and getting the file in but the System.out.println gives me the following output: INFO/System.out(7880): � =k�K V� a ��_|F��(# -ï¿½Ñ ï¿½ �u ���n�| �� ~��� �9� Ã�|T��sU Wlj�9�qeo� M%�t�V�V�3Q � T�Yq?��E��� �H%f o���M�un��-���ȓ������d��{���{�! �[��%��M �.�jq+��,�b����� ��~����)��*ܨ )�� ��i���b�_��F)�`� So it looks as if its no decrypting it at all or not decrypting it properly?? Can anyone see what I am doing wrong? On Fri, Sep 24, 2010 at 10:44 AM, draf...@gmail.com draf...@gmail.comwrote: 0 down vote favorite I am trying to to download and decrypt an encrypted XML file. I have implemented the download part and have tested with an unencrypted file and it works fine. However I now need to be able to download an XML file that has been encrypted using AES and the key So I am only concerned with decryption as the encryption on the XML file is already done. Here is my code so far: public NodeList getXMLDoc(){ URL url; NodeList nl = null; try{ String xmlFeed = context.getString(R.string.xml_feed); try { url = new URL(xmlFeed); URLConnection urlConnection; urlConnection = url.openConnection(); HttpURLConnection httpConnection = (HttpURLConnection) urlConnection; int responseCode = httpConnection.getResponseCode(); if(responseCode == HttpURLConnection.HTTP_OK){ String bytes = toHex(); SecretKeySpec skeySpec = new SecretKeySpec(toByte(bytes), AES); try { c.init(Cipher.DECRYPT_MODE, skeySpec); //c.doFinal(); } catch (InvalidKeyException e) { e.printStackTrace(); } InputStream in = httpConnection.getInputStream(); CipherInputStream cis = new CipherInputStream(in,
[android-developers] Re: How to decrypt an XML file?
Another update: I have changed the code to test encryption first and then decryption so the code is now as follows: [CODE]Cipher c = Cipher.getInstance(AES/CFB8/NoPadding); ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(keyFile)); oos.writeObject(skeySpec); c.init(Cipher.ENCRYPT_MODE, skeySpec); CipherOutputStream cos = new CipherOutputStream(new FileOutputStream(testFile), c); PrintWriter pw = new PrintWriter(new OutputStreamWriter(cos)); pw.println(Stand and unfold yourself); pw.close(); oos.writeObject(c.getIV()); oos.close(); c.init(Cipher.DECRYPT_MODE, skeySpec, new IvParameterSpec(toByte(bytes))); CipherInputStream cis = new CipherInputStream(new FileInputStream(testFile), c); Log.d(, br.readLine());[/CODE] This log now prints out the following: [CODE]DEBUG/(13642): �l�Ť���Õ*(��� yourself[/CODE] So it looks like its decoding the last part of it but not the rest? Any ideas? On Fri, Sep 24, 2010 at 2:23 PM, Donal Rafferty draf...@gmail.com wrote: Updated Code: public NodeList getRoutingDoc(){ URL url; NodeList nl = null; try{ String xmlFeed = context.getString(R.string.xml_feed) + IMEI + .xml; try { url = new URL(xmlFeed); URLConnection urlConnection; urlConnection = url.openConnection(); HttpURLConnection httpConnection = (HttpURLConnection) urlConnection; int responseCode = httpConnection.getResponseCode(); if(responseCode == HttpURLConnection.HTTP_OK){ String bytes = toHex(); Key skeySpec = new SecretKeySpec(toByte(bytes), AES); InputStream in = httpConnection.getInputStream(); System.out.println(toByte(bytes)); Cipher c = Cipher.getInstance(AES/CFB8/NoPadding); c.init(Cipher.DECRYPT_MODE, skeySpec, new IvParameterSpec(toByte(bytes))); CipherInputStream cis = new CipherInputStream(in, c); cis.read(new byte[16]); BufferedReader br = new BufferedReader(new InputStreamReader(cis)); System.out.println(Got message); System.out.println(br.readLine()); DocumentBuilderFactory dbf; dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document dom = db.parse(in); //cis.close(); Element docEle = dom.getDocumentElement(); nl = docEle.getElementsByTagName(TAG_CHAR); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (InvalidKeyException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvalidAlgorithmParameterException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchPaddingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } finally{ } return nl; } I have updated my code to the latest version I have. I am now using the CipherInputStream properly I think and getting the file in but the System.out.println gives me the following output: INFO/System.out(7880): � =k�K V� a ��_|F��(# -ï¿½Ñ ï¿½ �u ���n�| �� ~��� �9� Ã�|T��sU Wlj�9�qeo� M%�t�V�V�3Q �T�Yq?��E��� �H%f o���M�un��-���ȓ������d��{���{�! �[��%��M �.�jq+��,�b����� ��~����)��*ܨ )�� ��i���b�_��F)�`� So it looks as if its no decrypting it at all or not decrypting it properly?? Can anyone see what I am doing wrong? On Fri, Sep 24, 2010 at 10:44 AM, draf...@gmail.com draf...@gmail.comwrote: 0 down vote favorite I am trying to to download and decrypt an encrypted XML file. I have implemented the download part and have tested with an unencrypted file and it works fine. However I now need to be able to download an XML file that has been encrypted using AES and the key So I am only concerned with decryption
Re: [android-developers] Re: How to decrypt an XML file?
I am aware of that. Hence why I am asking for help in identifying which subtlety may be causing the issue. On Fri, Sep 24, 2010 at 4:51 PM, DanH danhi...@ieee.org wrote: There are a lot of subtleties to encryption/decryption having to do with block size, pre-priming the buffers, and padding at the end. It's more than just getting the algorithm and key right. On Sep 24, 4:44 am, draf...@gmail.com draf...@gmail.com wrote: 0 down vote favorite I am trying to to download and decrypt an encrypted XML file. I have implemented the download part and have tested with an unencrypted file and it works fine. However I now need to be able to download an XML file that has been encrypted using AES and the key So I am only concerned with decryption as the encryption on the XML file is already done. Here is my code so far: public NodeList getXMLDoc(){ URL url; NodeList nl = null; try{ String xmlFeed = context.getString(R.string.xml_feed); try { url = new URL(xmlFeed); URLConnection urlConnection; urlConnection = url.openConnection(); HttpURLConnection httpConnection = (HttpURLConnection) urlConnection; int responseCode = httpConnection.getResponseCode(); if(responseCode == HttpURLConnection.HTTP_OK){ String bytes = toHex(); SecretKeySpec skeySpec = new SecretKeySpec(toByte(bytes), AES); try { c.init(Cipher.DECRYPT_MODE, skeySpec); //c.doFinal(); } catch (InvalidKeyException e) { e.printStackTrace(); } InputStream in = httpConnection.getInputStream(); CipherInputStream cis = new CipherInputStream(in, c); DocumentBuilderFactory dbf; dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document dom = db.parse(cis); Element docEle = dom.getDocumentElement(); nl = docEle.getElementsByTagName(TAG_CHAR); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } } finally{ } return nl; } At the minute I am trying to decrypt the whole file using CipherInputStream is this the correct approach? My code above gives me the following exception: WARN/System.err(5274): java.io.IOException: last block incomplete in decryption Is this a setup error or what might be causing this error? Are there any tutorials on how to decrypt an XML file in Android/Java? Am I going in the right direction as to how to decrypt the file or is my code completely wrong? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: AsyncTask doesn't run sometimes despite state returning RUNNING?
Thanks for that! Excellent code. But I have a problem! When I try to do the following: private MyService service=null; private ServiceConnection svcConn=new ServiceConnection() { public void onServiceConnected(ComponentName className, IBinder binder) { service=(MyService)binder; try { service.getRingTone(); } catch (Throwable t) { Log.e(Patchy, Exception in call to registerAccount(), t); //goBlooey(t); } } public void onServiceDisconnected(ComponentName className) { service=null; } }; bindService(new Intent(this, MyService.class), svcConn, BIND_AUTO_CREATE); I get an uncaught exception error on this line: service=(MyService)binder; 09-13 10:06:53.566: ERROR/AndroidRuntime(18791): Uncaught handler: thread main exiting due to uncaught exception 09-13 10:06:53.676: ERROR/AndroidRuntime(18791): java.lang.ClassCastException: com.xxx.phone.MyService$1 09-13 10:06:53.676: ERROR/AndroidRuntime(18791): at com.xxx.phone.ui.MyActivity$2.onServiceConnected(MyActivity.java:515) So it doesn't like the cast from binder to Service? How can I fix that do you know? What am I missing from the example? On Sat, Sep 11, 2010 at 8:22 AM, Federico Paolinelli fedep...@gmail.comwrote: You need to use aidl if you want to call another process. But if you want to interact with the service from activities of the same application, you can call the methods directly from the activity. Check for example this sample code from Mark's tutorial: http://github.com/commonsguy/cw-andtutorials/tree/master/18-LocalService/ On 10 Set, 19:32, Donal Rafferty draf...@gmail.com wrote: As in the following piece of code...? : bindService(bindIntent, mConnection, Context.BIND_AUTO_CREATE); I do that but I think I do require the aidl to be able to call methods from the service? On Fri, Sep 10, 2010 at 6:17 PM, Federico Paolinelli fedep...@gmail.com wrote: In any case, I meant binding the activity to the service using bindService method without passing from the aidl. In this way you will get direct access to the methods of the service directly from the activity. In this way, I suppose you can pass the service an interface to get called when your asynctask finished its job. Try to google for service binding examples. Hope this helps (and I hope I am not saying bullshit as well :-) ) Federico On Fri, Sep 10, 2010 at 7:03 PM, Donal Rafferty draf...@gmail.com wrote: No luck :( --- package com.xxx.phone.ui; import android.media.Ringtone; interface ICallDialogActivity{ void sendRingTone(in RingTone aRingTone); } --- I get the red x beside the import and coundn't find import for class android.media.Ringtone; On Fri, Sep 10, 2010 at 5:45 PM, Mark Murphy mmur...@commonsware.com wrote: On Fri, Sep 10, 2010 at 12:28 PM, Donal Rafferty draf...@gmail.com wrote: Is that possible? I have a bind between my Service and the Activity at the minute but when I try to change to aidl file to allow me pass the RingTone object it wont compile for me, saying RingTone and com.android.RingTone cannot be resolved/found Try android.media.Ringtone. -- Mark Murphy (a Commons Guy) http://commonsware.com|http://github.com/commonsguy http://commonsware.com/blog|http://twitter.com/commonsguyhttp://commonsware.com/blog%7Chttp://twitter.com/commonsguy Android Training in London: http://skillsmatter.com/go/os-mobile-server -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com android-developers%2bunsubscr...@googlegroups.comandroid-developers%252bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com android-developers%2bunsubscr...@googlegroups.comandroid-developers%252bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- Federico -- You received this message because you are subscribed to the Google Groups Android
Re: [android-developers] Re: AsyncTask doesn't run sometimes despite state returning RUNNING?
Monday morning coding! :) I return my aidl definition in my service's onBind: @Override public IBinder onBind(Intent arg0) { Log.d(XXX, Status: onBind Called); return myServiceStub; } IBinder myServiceStub = new IMyService.Stub(){ //aidl methods }; And use this to call methods from my Activity, so I would need to be able to import android.media.Ringtone in my aidl definition but I cant. So I'm still stuck with it not working :( On Mon, Sep 13, 2010 at 10:32 AM, Kostya Vasilyev kmans...@gmail.comwrote: Donal, No, a service is a service, and a binder is a binder. The binder you get in the callback is the binder returned by the service's onBind. This example: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalService.html has a binder implementation that returns a reference to its service, so you can do this public void onServiceConnected(ComponentName className, IBinder binder) { LocalService.LocalBinder binder = (LocalService.LocalBinder) binder; *LocalService service = binder.getService();* } This example has one flaw: it leaks a service reference (since LocalBinder is a non-static inner class of LocalService). Using a static inner or a top-level class for LocalBinder, fixes that (AFAIK). -- Kostya 13.09.2010 13:16, Donal Rafferty пишет: 09-13 10:06:53.566: ERROR/AndroidRuntime(18791): Uncaught handler: thread main exiting due to uncaught exception 09-13 10:06:53.676: ERROR/AndroidRuntime(18791): java.lang.ClassCastException: com.xxx.phone.MyService$1 09-13 10:06:53.676: ERROR/AndroidRuntime(18791): at com.xxx.phone.ui.MyActivity$2.onServiceConnected(MyActivity.java:515) So it doesn't like the cast from binder to Service? How can I fix that do you know? What am I missing from the example? -- Kostya Vasilyev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: AsyncTask doesn't run sometimes despite state returning RUNNING?
I have managed to implement the Task in my Service now but the original problem still remains. I dont cancel the Task at all in my service, I simply play the ringtone in the postExecute method of the Asynctask if a flag is true, if its not I dont. But I get the same issue, after a couple of runs the AsyncTask simply stops getting to the doInBackground method, only the postExecute method is run. Its very strange and really annoying me now. Is there any reason why an AsyncTask would behave like this without cancel being used? On Mon, Sep 13, 2010 at 10:58 AM, Donal Rafferty draf...@gmail.com wrote: Monday morning coding! :) I return my aidl definition in my service's onBind: @Override public IBinder onBind(Intent arg0) { Log.d(XXX, Status: onBind Called); return myServiceStub; } IBinder myServiceStub = new IMyService.Stub(){ //aidl methods }; And use this to call methods from my Activity, so I would need to be able to import android.media.Ringtone in my aidl definition but I cant. So I'm still stuck with it not working :( On Mon, Sep 13, 2010 at 10:32 AM, Kostya Vasilyev kmans...@gmail.comwrote: Donal, No, a service is a service, and a binder is a binder. The binder you get in the callback is the binder returned by the service's onBind. This example: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalService.html has a binder implementation that returns a reference to its service, so you can do this public void onServiceConnected(ComponentName className, IBinder binder) { LocalService.LocalBinder binder = (LocalService.LocalBinder) binder; *LocalService service = binder.getService();* } This example has one flaw: it leaks a service reference (since LocalBinder is a non-static inner class of LocalService). Using a static inner or a top-level class for LocalBinder, fixes that (AFAIK). -- Kostya 13.09.2010 13:16, Donal Rafferty пишет: 09-13 10:06:53.566: ERROR/AndroidRuntime(18791): Uncaught handler: thread main exiting due to uncaught exception 09-13 10:06:53.676: ERROR/AndroidRuntime(18791): java.lang.ClassCastException: com.xxx.phone.MyService$1 09-13 10:06:53.676: ERROR/AndroidRuntime(18791): at com.xxx.phone.ui.MyActivity$2.onServiceConnected(MyActivity.java:515) So it doesn't like the cast from binder to Service? How can I fix that do you know? What am I missing from the example? -- Kostya Vasilyev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: AsyncTask doesn't run sometimes despite state returning RUNNING?
Sorry I meant only the preExecute is run On Mon, Sep 13, 2010 at 1:05 PM, Donal Rafferty draf...@gmail.com wrote: I have managed to implement the Task in my Service now but the original problem still remains. I dont cancel the Task at all in my service, I simply play the ringtone in the postExecute method of the Asynctask if a flag is true, if its not I dont. But I get the same issue, after a couple of runs the AsyncTask simply stops getting to the doInBackground method, only the postExecute method is run. Its very strange and really annoying me now. Is there any reason why an AsyncTask would behave like this without cancel being used? On Mon, Sep 13, 2010 at 10:58 AM, Donal Rafferty draf...@gmail.comwrote: Monday morning coding! :) I return my aidl definition in my service's onBind: @Override public IBinder onBind(Intent arg0) { Log.d(XXX, Status: onBind Called); return myServiceStub; } IBinder myServiceStub = new IMyService.Stub(){ //aidl methods }; And use this to call methods from my Activity, so I would need to be able to import android.media.Ringtone in my aidl definition but I cant. So I'm still stuck with it not working :( On Mon, Sep 13, 2010 at 10:32 AM, Kostya Vasilyev kmans...@gmail.comwrote: Donal, No, a service is a service, and a binder is a binder. The binder you get in the callback is the binder returned by the service's onBind. This example: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalService.html has a binder implementation that returns a reference to its service, so you can do this public void onServiceConnected(ComponentName className, IBinder binder) { LocalService.LocalBinder binder = (LocalService.LocalBinder) binder; *LocalService service = binder.getService();* } This example has one flaw: it leaks a service reference (since LocalBinder is a non-static inner class of LocalService). Using a static inner or a top-level class for LocalBinder, fixes that (AFAIK). -- Kostya 13.09.2010 13:16, Donal Rafferty пишет: 09-13 10:06:53.566: ERROR/AndroidRuntime(18791): Uncaught handler: thread main exiting due to uncaught exception 09-13 10:06:53.676: ERROR/AndroidRuntime(18791): java.lang.ClassCastException: com.xxx.phone.MyService$1 09-13 10:06:53.676: ERROR/AndroidRuntime(18791): at com.xxx.phone.ui.MyActivity$2.onServiceConnected(MyActivity.java:515) So it doesn't like the cast from binder to Service? How can I fix that do you know? What am I missing from the example? -- Kostya Vasilyev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: AsyncTask doesn't run sometimes despite state returning RUNNING?
Kostya, Thanks, that conversation can be seen here: http://groups.google.com/group/android-developers/browse_thread/thread/07ea01892ee7a5f4/9f71428217c2cd44 However the condition is in the cancel code, which I no longer use as I am running the code in a Service so I have no need to cancel it. 2010/9/13 Kostya Vasilyev kmans...@gmail.com Donal, Search the list: there was a post within the last month (I think) from Romain Guy about some kind of thread race issue in AsyncTask having been fixed in Froyo (or was it post-Froyo?) - anyway, it's somewhere in the archives. -- Kostya 13.09.2010 16:07, Donal Rafferty пишет: Sorry I meant only the preExecute is run On Mon, Sep 13, 2010 at 1:05 PM, Donal Rafferty draf...@gmail.com wrote: I have managed to implement the Task in my Service now but the original problem still remains. I dont cancel the Task at all in my service, I simply play the ringtone in the postExecute method of the Asynctask if a flag is true, if its not I dont. But I get the same issue, after a couple of runs the AsyncTask simply stops getting to the doInBackground method, only the postExecute method is run. Its very strange and really annoying me now. Is there any reason why an AsyncTask would behave like this without cancel being used? On Mon, Sep 13, 2010 at 10:58 AM, Donal Rafferty draf...@gmail.comwrote: Monday morning coding! :) I return my aidl definition in my service's onBind: @Override public IBinder onBind(Intent arg0) { Log.d(XXX, Status: onBind Called); return myServiceStub; } IBinder myServiceStub = new IMyService.Stub(){ //aidl methods }; And use this to call methods from my Activity, so I would need to be able to import android.media.Ringtone in my aidl definition but I cant. So I'm still stuck with it not working :( On Mon, Sep 13, 2010 at 10:32 AM, Kostya Vasilyev kmans...@gmail.comwrote: Donal, No, a service is a service, and a binder is a binder. The binder you get in the callback is the binder returned by the service's onBind. This example: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalService.html has a binder implementation that returns a reference to its service, so you can do this public void onServiceConnected(ComponentName className, IBinder binder) { LocalService.LocalBinder binder = (LocalService.LocalBinder) binder; *LocalService service = binder.getService();* } This example has one flaw: it leaks a service reference (since LocalBinder is a non-static inner class of LocalService). Using a static inner or a top-level class for LocalBinder, fixes that (AFAIK). -- Kostya 13.09.2010 13:16, Donal Rafferty пишет: 09-13 10:06:53.566: ERROR/AndroidRuntime(18791): Uncaught handler: thread main exiting due to uncaught exception 09-13 10:06:53.676: ERROR/AndroidRuntime(18791): java.lang.ClassCastException: com.xxx.phone.MyService$1 09-13 10:06:53.676: ERROR/AndroidRuntime(18791): at com.xxx.phone.ui.MyActivity$2.onServiceConnected(MyActivity.java:515) So it doesn't like the cast from binder to Service? How can I fix that do you know? What am I missing from the example? -- Kostya Vasilyev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- Kostya Vasilyev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http
Re: [android-developers] Re: AsyncTask doesn't run sometimes despite state returning RUNNING?
Kostya, I do create a new Task as follows everytime: new SelectRingtoneTask().execute(); But I had to use Looper.prepare(); to get it to work in my Service, this could be causing an issue? Is there a proper way to use a AsyncTask in a Service without needing to call Looper.prepare();? 2010/9/13 Kostya Vasilyev kmans...@gmail.com Donal, It sort of seems like you reuse the same task over and over. What happens if you create a new task each time you need to perform the asynchronous operation? -- Kostya 13.09.2010 17:44, Donal Rafferty пишет: Kostya, Thanks, that conversation can be seen here: http://groups.google.com/group/android-developers/browse_thread/thread/07ea01892ee7a5f4/9f71428217c2cd44 However the condition is in the cancel code, which I no longer use as I am running the code in a Service so I have no need to cancel it. 2010/9/13 Kostya Vasilyev kmans...@gmail.com Donal, Search the list: there was a post within the last month (I think) from Romain Guy about some kind of thread race issue in AsyncTask having been fixed in Froyo (or was it post-Froyo?) - anyway, it's somewhere in the archives. -- Kostya 13.09.2010 16:07, Donal Rafferty пишет: Sorry I meant only the preExecute is run On Mon, Sep 13, 2010 at 1:05 PM, Donal Rafferty draf...@gmail.comwrote: I have managed to implement the Task in my Service now but the original problem still remains. I dont cancel the Task at all in my service, I simply play the ringtone in the postExecute method of the Asynctask if a flag is true, if its not I dont. But I get the same issue, after a couple of runs the AsyncTask simply stops getting to the doInBackground method, only the postExecute method is run. Its very strange and really annoying me now. Is there any reason why an AsyncTask would behave like this without cancel being used? On Mon, Sep 13, 2010 at 10:58 AM, Donal Rafferty draf...@gmail.comwrote: Monday morning coding! :) I return my aidl definition in my service's onBind: @Override public IBinder onBind(Intent arg0) { Log.d(XXX, Status: onBind Called); return myServiceStub; } IBinder myServiceStub = new IMyService.Stub(){ //aidl methods }; And use this to call methods from my Activity, so I would need to be able to import android.media.Ringtone in my aidl definition but I cant. So I'm still stuck with it not working :( On Mon, Sep 13, 2010 at 10:32 AM, Kostya Vasilyev kmans...@gmail.comwrote: Donal, No, a service is a service, and a binder is a binder. The binder you get in the callback is the binder returned by the service's onBind. This example: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalService.html has a binder implementation that returns a reference to its service, so you can do this public void onServiceConnected(ComponentName className, IBinder binder) { LocalService.LocalBinder binder = (LocalService.LocalBinder) binder; *LocalService service = binder.getService();* } This example has one flaw: it leaks a service reference (since LocalBinder is a non-static inner class of LocalService). Using a static inner or a top-level class for LocalBinder, fixes that (AFAIK). -- Kostya 13.09.2010 13:16, Donal Rafferty пишет: 09-13 10:06:53.566: ERROR/AndroidRuntime(18791): Uncaught handler: thread main exiting due to uncaught exception 09-13 10:06:53.676: ERROR/AndroidRuntime(18791): java.lang.ClassCastException: com.xxx.phone.MyService$1 09-13 10:06:53.676: ERROR/AndroidRuntime(18791): at com.xxx.phone.ui.MyActivity$2.onServiceConnected(MyActivity.java:515) So it doesn't like the cast from binder to Service? How can I fix that do you know? What am I missing from the example? -- Kostya Vasilyev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- Kostya Vasilyev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com
Re: [android-developers] Re: AsyncTask doesn't run sometimes despite state returning RUNNING?
Thanks, I am trying to run it on the UI thread but via the Service. Have implemented a work around for now anyway and will re visit this when I have time to study and recode it properly. Thanks On Mon, Sep 13, 2010 at 5:32 PM, String sterling.ud...@googlemail.comwrote: Donal, I'm mildly surprised Mark Murphy hasn't chimed in on this himself, but here's a current post from his blog which looks relevant: http://commonsware.com/blog/2010/09/10/asynctask-screen-rotation.html HTH, String On Sep 13, 1:05 pm, Donal Rafferty draf...@gmail.com wrote: I have managed to implement the Task in my Service now but the original problem still remains. I dont cancel the Task at all in my service, I simply play the ringtone in the postExecute method of the Asynctask if a flag is true, if its not I dont. But I get the same issue, after a couple of runs the AsyncTask simply stops getting to the doInBackground method, only the postExecute method is run. Its very strange and really annoying me now. Is there any reason why an AsyncTask would behave like this without cancel being used? On Mon, Sep 13, 2010 at 10:58 AM, Donal Rafferty draf...@gmail.com wrote: Monday morning coding! :) I return my aidl definition in my service's onBind: @Override public IBinder onBind(Intent arg0) { Log.d(XXX, Status: onBind Called); return myServiceStub; } IBinder myServiceStub = new IMyService.Stub(){ //aidl methods }; And use this to call methods from my Activity, so I would need to be able to import android.media.Ringtone in my aidl definition but I cant. So I'm still stuck with it not working :( On Mon, Sep 13, 2010 at 10:32 AM, Kostya Vasilyev kmans...@gmail.com wrote: Donal, No, a service is a service, and a binder is a binder. The binder you get in the callback is the binder returned by the service's onBind. This example: http://developer.android.com/resources/samples/ApiDemos/src/com/examp. .. has a binder implementation that returns a reference to its service, so you can do this public void onServiceConnected(ComponentName className, IBinder binder) { LocalService.LocalBinder binder = (LocalService.LocalBinder) binder; *LocalService service = binder.getService();* } This example has one flaw: it leaks a service reference (since LocalBinder is a non-static inner class of LocalService). Using a static inner or a top-level class for LocalBinder, fixes that (AFAIK). -- Kostya 13.09.2010 13:16, Donal Rafferty пишет: 09-13 10:06:53.566: ERROR/AndroidRuntime(18791): Uncaught handler: thread main exiting due to uncaught exception 09-13 10:06:53.676: ERROR/AndroidRuntime(18791): java.lang.ClassCastException: com.xxx.phone.MyService$1 09-13 10:06:53.676: ERROR/AndroidRuntime(18791): at com.xxx.phone.ui.MyActivity$2.onServiceConnected(MyActivity.java:515) So it doesn't like the cast from binder to Service? How can I fix that do you know? What am I missing from the example? -- Kostya Vasilyev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.comandroid-developers%2Bunsubs cr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] AsyncTask doesn't run sometimes despite state returning RUNNING?
Thanks for that Shawn, but I'm looking for a solution that doesn't involve external libraries. On Fri, Sep 10, 2010 at 10:45 AM, Shawn Brown big.coffee.lo...@gmail.comwrote: Has anybody got any idea why this would be happening? Well... from http://brainflush.wordpress.com/2009/11/16/introducing-droid-fu-for-android-betteractivity-betterservice-and-betterasynctask/ So the basic idea is: launch an AsyncTask making your service call, show a nifty progress dialog while the task thread is running, and have the task’s result be posted back to your activity once it completes. Cool, but what if the user decides to rotate the screen while your task is running? Or a phone call comes in, interrupting your app, and Android decides to kill it? Both these actions will effectively terminateyour activity, and recreate it when resuming (yes, a screen rotation kills your activity, very clever, isn’t it?). Unfortunately, any AsyncTask that was still running now holds a stale reference to your activity, because the restarted activity will be an entirely different object in memory (and it will go through onCreate(), as if the activity had started for the first time). I’m not entirely sure whether AsyncTask will actually post back the data to the old activity object (if it was a weak reference, it may already have been garbage collected), but in any case, your “new” activity will never see it, because it’s a different instance. Now, one could argue: well, just do all the work again, like, re-send the request or whatever job was running. Yes, you could do that. But that’s wasteful and, really, makes you feel stupid, no? Plus, if the user triggers a web service request, then flips the screen, decides that this wasn’t helpful, and flips it back, then your request is being sent 3 times in parallel. Is that what you want? Probably not. BetterAsyncTask to the Rescue Thanks to Droid-Fu, there’s a solution to this: BetterAsyncTask! (I’m a lazy person, and I couldn’t come up with a better name). It behaves exactly like AsyncTask (in fact, it is an AsyncTask), but it does some extra work for you: first and foremost, it keeps track of the active instance of the context that launched it, and if that instance should change, it will post the data back to the new instance. In other words, you can dispatch your task, flip the screen back and forth mentally, and BetterAsyncTask will still post the task’s result back to whatever activity instance is alive at the time it finishes. In other words, the task is only ever run once, regardless whether the context in which it was launched died while it was running or not. http://github.com/kaeppler/droid-fu -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: AsyncTask doesn't run sometimes despite state returning RUNNING?
Excellent idea Federico, However my AsyncTask fetches a RingTone object (com.android.RingTone) and I have no way of passing this object from my Service to my Activity? On Fri, Sep 10, 2010 at 11:36 AM, Federico Paolinelli fedep...@gmail.comwrote: You could probably move the async task to a service, and broadcast all your stuff when you finish. If your activity listens for the broadcast, it won't matter if the activity itself started the service, or if it was started by another activity (of the same kind). Federico On Sep 10, 12:14 pm, Donal Rafferty draf...@gmail.com wrote: Thanks for that Shawn, but I'm looking for a solution that doesn't involve external libraries. On Fri, Sep 10, 2010 at 10:45 AM, Shawn Brown big.coffee.lo...@gmail.comwrote: Has anybody got any idea why this would be happening? Well... from http://brainflush.wordpress.com/2009/11/16/introducing-droid-fu-for-a. .. So the basic idea is: launch an AsyncTask making your service call, show a nifty progress dialog while the task thread is running, and have the task’s result be posted back to your activity once it completes. Cool, but what if the user decides to rotate the screen while your task is running? Or a phone call comes in, interrupting your app, and Android decides to kill it? Both these actions will effectively terminateyour activity, and recreate it when resuming (yes, a screen rotation kills your activity, very clever, isn’t it?). Unfortunately, any AsyncTask that was still running now holds a stale reference to your activity, because the restarted activity will be an entirely different object in memory (and it will go through onCreate(), as if the activity had started for the first time). I’m not entirely sure whether AsyncTask will actually post back the data to the old activity object (if it was a weak reference, it may already have been garbage collected), but in any case, your “new” activity will never see it, because it’s a different instance. Now, one could argue: well, just do all the work again, like, re-send the request or whatever job was running. Yes, you could do that. But that’s wasteful and, really, makes you feel stupid, no? Plus, if the user triggers a web service request, then flips the screen, decides that this wasn’t helpful, and flips it back, then your request is being sent 3 times in parallel. Is that what you want? Probably not. BetterAsyncTask to the Rescue Thanks to Droid-Fu, there’s a solution to this: BetterAsyncTask! (I’m a lazy person, and I couldn’t come up with a better name). It behaves exactly like AsyncTask (in fact, it is an AsyncTask), but it does some extra work for you: first and foremost, it keeps track of the active instance of the context that launched it, and if that instance should change, it will post the data back to the new instance. In other words, you can dispatch your task, flip the screen back and forth mentally, and BetterAsyncTask will still post the task’s result back to whatever activity instance is alive at the time it finishes. In other words, the task is only ever run once, regardless whether the context in which it was launched died while it was running or not. http://github.com/kaeppler/droid-fu -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com android-developers%2bunsubscr...@googlegroups.comandroid-developers%252bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: AsyncTask doesn't run sometimes despite state returning RUNNING?
Is that possible? I have a bind between my Service and the Activity at the minute but when I try to change to aidl file to allow me pass the RingTone object it wont compile for me, saying RingTone and com.android.RingTone cannot be resolved/found On Fri, Sep 10, 2010 at 1:34 PM, Federico Paolinelli fedep...@gmail.comwrote: One way I would try is to bind your activity to the service and give the service a callback to be called when you asynctask has finished its dirty job. (I've never done this, but it may work). You can provide your ringtone object as argument of the callback. On 10 Set, 13:38, Donal Rafferty draf...@gmail.com wrote: Excellent idea Federico, However my AsyncTask fetches a RingTone object (com.android.RingTone) and I have no way of passing this object from my Service to my Activity? On Fri, Sep 10, 2010 at 11:36 AM, Federico Paolinelli fedep...@gmail.comwrote: You could probably move the async task to a service, and broadcast all your stuff when you finish. If your activity listens for the broadcast, it won't matter if the activity itself started the service, or if it was started by another activity (of the same kind). Federico On Sep 10, 12:14 pm, Donal Rafferty draf...@gmail.com wrote: Thanks for that Shawn, but I'm looking for a solution that doesn't involve external libraries. On Fri, Sep 10, 2010 at 10:45 AM, Shawn Brown big.coffee.lo...@gmail.comwrote: Has anybody got any idea why this would be happening? Well... from http://brainflush.wordpress.com/2009/11/16/introducing-droid-fu-for-a. .. So the basic idea is: launch an AsyncTask making your service call, show a nifty progress dialog while the task thread is running, and have the task’s result be posted back to your activity once it completes. Cool, but what if the user decides to rotate the screen while your task is running? Or a phone call comes in, interrupting your app, and Android decides to kill it? Both these actions will effectively terminateyour activity, and recreate it when resuming (yes, a screen rotation kills your activity, very clever, isn’t it?). Unfortunately, any AsyncTask that was still running now holds a stale reference to your activity, because the restarted activity will be an entirely different object in memory (and it will go through onCreate(), as if the activity had started for the first time). I’m not entirely sure whether AsyncTask will actually post back the data to the old activity object (if it was a weak reference, it may already have been garbage collected), but in any case, your “new” activity will never see it, because it’s a different instance. Now, one could argue: well, just do all the work again, like, re-send the request or whatever job was running. Yes, you could do that. But that’s wasteful and, really, makes you feel stupid, no? Plus, if the user triggers a web service request, then flips the screen, decides that this wasn’t helpful, and flips it back, then your request is being sent 3 times in parallel. Is that what you want? Probably not. BetterAsyncTask to the Rescue Thanks to Droid-Fu, there’s a solution to this: BetterAsyncTask! (I’m a lazy person, and I couldn’t come up with a better name). It behaves exactly like AsyncTask (in fact, it is an AsyncTask), but it does some extra work for you: first and foremost, it keeps track of the active instance of the context that launched it, and if that instance should change, it will post the data back to the new instance. In other words, you can dispatch your task, flip the screen back and forth mentally, and BetterAsyncTask will still post the task’s result back to whatever activity instance is alive at the time it finishes. In other words, the task is only ever run once, regardless whether the context in which it was launched died while it was running or not. http://github.com/kaeppler/droid-fu -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com android-developers%2bunsubscr...@googlegroups.comandroid-developers%252bunsubscr...@googlegroups.com android-developers%2bunsubscr...@googlegroups.comandroid-developers%252bunsubscr...@googlegroups.com android-developers%252bunsubscr...@googlegroups.comandroid-developers%25252bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android
Re: [android-developers] Re: AsyncTask doesn't run sometimes despite state returning RUNNING?
No luck :( --- package com.xxx.phone.ui; import android.media.Ringtone; interface ICallDialogActivity{ void sendRingTone(in RingTone aRingTone); } --- I get the red x beside the import and coundn't find import for class android.media.Ringtone; On Fri, Sep 10, 2010 at 5:45 PM, Mark Murphy mmur...@commonsware.comwrote: On Fri, Sep 10, 2010 at 12:28 PM, Donal Rafferty draf...@gmail.com wrote: Is that possible? I have a bind between my Service and the Activity at the minute but when I try to change to aidl file to allow me pass the RingTone object it wont compile for me, saying RingTone and com.android.RingTone cannot be resolved/found Try android.media.Ringtone. -- Mark Murphy (a Commons Guy) http://commonsware.com | http://github.com/commonsguy http://commonsware.com/blog | http://twitter.com/commonsguy Android Training in London: http://skillsmatter.com/go/os-mobile-server -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: AsyncTask doesn't run sometimes despite state returning RUNNING?
As in the following piece of code...? : bindService(bindIntent, mConnection, Context.BIND_AUTO_CREATE); I do that but I think I do require the aidl to be able to call methods from the service? On Fri, Sep 10, 2010 at 6:17 PM, Federico Paolinelli fedep...@gmail.comwrote: In any case, I meant binding the activity to the service using bindService method without passing from the aidl. In this way you will get direct access to the methods of the service directly from the activity. In this way, I suppose you can pass the service an interface to get called when your asynctask finished its job. Try to google for service binding examples. Hope this helps (and I hope I am not saying bullshit as well :-) ) Federico On Fri, Sep 10, 2010 at 7:03 PM, Donal Rafferty draf...@gmail.com wrote: No luck :( --- package com.xxx.phone.ui; import android.media.Ringtone; interface ICallDialogActivity{ void sendRingTone(in RingTone aRingTone); } --- I get the red x beside the import and coundn't find import for class android.media.Ringtone; On Fri, Sep 10, 2010 at 5:45 PM, Mark Murphy mmur...@commonsware.com wrote: On Fri, Sep 10, 2010 at 12:28 PM, Donal Rafferty draf...@gmail.com wrote: Is that possible? I have a bind between my Service and the Activity at the minute but when I try to change to aidl file to allow me pass the RingTone object it wont compile for me, saying RingTone and com.android.RingTone cannot be resolved/found Try android.media.Ringtone. -- Mark Murphy (a Commons Guy) http://commonsware.com | http://github.com/commonsguy http://commonsware.com/blog | http://twitter.com/commonsguy Android Training in London: http://skillsmatter.com/go/os-mobile-server -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- Federico -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] onBackPressed() not working
Thanks Dianne, Adding this line solved my problem return super.onKeyDown(keyCode, event); And I have changed the code to use moveTaskToBack(true); instead. Thanks On Tue, Aug 24, 2010 at 6:02 PM, Dianne Hackborn hack...@android.comwrote: Starting an activity in onBackPressed is... questionable. You really should use moveTaskToBack(). Sorry I know this doesn't answer your actual question... I'll look and see if it is working on my devices. On Tue, Aug 24, 2010 at 8:56 AM, draf...@gmail.com draf...@gmail.comwrote: I have an application building against Android 2.1 and I want to override the back button. I have followed the example here: http://android-developers.blogspot.com/2009_12_01_archive.html And my code is as follows: --- @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (Integer.parseInt(android.os.Build.VERSION.SDK) 5 keyCode == KeyEvent.KEYCODE_BACK event.getRepeatCount() == 0) { Log.d(CDA, onKeyDown Called); onBackPressed(); } return true; } @Override public void onBackPressed() { Log.d(CDA, onBackPressed Called); Intent setIntent = new Intent(Intent.ACTION_MAIN); setIntent.addCategory(Intent.CATEGORY_HOME); setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(setIntent); return; } --- It works on pre 2.x devices but doesn't work on a Hero with 2.1 update-1 and a Nexus One with 2.2. Is there somwthing I am missing from the example? Or can anyone point out why it isn't working? I dont even get the button pressed in the logcat. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] How to code ContactsContract so that it runs in 2.2 and doesn't crash 1.5?
Thanks Kostya, I have grasped that now and have it working in one part of my application. I have another problem now though. I have this in code: Uri contactUri = ContentUris.withAppendedId (Contacts.People.CONTENT_URI, contactId); Intent intent = new Intent(Intent.ACTION_VIEW, contactUri); startActivity(intent); This launchs the contacts application and displays the contact according to the ID supplied, this works in all Android versions except 2.2 (API level 8) and I cant find the equivalant code for 2.2. I have tried ContactsContract.PhoneLookup, ContactsContract.Contact, ContactsContract.CommonDataKinds but none of them seem to let me launch the contacts application and dispaly a contacts info according to a supplied ID. Can anyone help with this? On Tue, Jul 27, 2010 at 4:27 PM, Kostya Vasilyev kmans...@gmail.com wrote: Hi, The offending line is this: ContactsContract.Contacts Even though you're not referencing this nested member on the execution path, the Java VM still tries to resolve all external references made by your code. This is done when your code is first loaded into memory for execution, before it is run. At this point, the external reference fails (since you are on Android 1.5), and your code is not able to load and execute. The solution is to use Java Reflection feature to not make any compile-time references to missing classes / members, but rather check at runtime whether they exist. This way, there are no compile-time references to stuff that only exists in later API levels, and your code can gracefully fall back to earlier APIs at runtime. The key is what references your code makes at compile time, and, as a consequence, when your class is loaded into memory. http://java.sun.com/developer/technicalArticles/ALT/Reflection/ That is the general solution. However, in this particular case, you could duplicate the URI string from ContactsContract.Contacts.CONTENT_URI to some string constant in your code. Just like this: class YourClass { private static final String ANDROID_1_X_CONTACTS_URI = People.CONTENT_URI; private static final String ANDROID_2_X_CONTACTS_URI = content://put correct value here; } Then use the appropriate constant (one of the two) based on API level just like you're trying to do now. -- Kostya 27.07.2010 18:10, draf...@gmail.com пишет: I have the following piece of code in my Android application that looks up a contacts ID, I have just changed the target from 1.5 to 2.2 but with a min SDK of 3 (1.5) so that I can use the ContactsContract Uri in 2.2 and the People Uri in 1.5. However the code leads to the following error when run on 1.5 devices: 07-27 15:02:53.382: WARN/dalvikvm(12656): VFY: unable to resolve static field 25 (CONTENT_URI) in Landroid/provider/ContactsContract $Contacts; --- From google I have garnered that I need to use reflection in this case to allow the application run on both versions of Android? I have seen example's of how to use reflection to use methods of multiple/different versions but how can I use it in mycase where I want to use the ContactsContract Uri? Here is my code: --- findViewById(R.id.contactimage).setOnClickListener(new OnClickListener() { public void onClick(View v) { String sdk = android.os.Build.VERSION.SDK; Uri contactUri; Log.d(CDA, Contact ID Button pressed = + contactId); if(sdk.equals(8)){ contactUri = ContentUris.withAppendedId (ContactsContract.Contacts.CONTENT_URI, contactId); Intent intent = new Intent(Intent.ACTION_VIEW, contactUri); startActivity(intent); } else{ contactUri = ContentUris.withAppendedId (People.CONTENT_URI, contactId); Intent intent = new Intent(Intent.ACTION_VIEW, contactUri); startActivity(intent); } dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.FLAG_SOFT_KEYBOARD)); dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK)); } }); -- Kostya Vasilev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options,
Re: [android-developers] How to code ContactsContract so that it runs in 2.2 and doesn't crash 1.5?
Actually I have found the solution to the above problem, well kind of, it turns out the problem is elsewhere, I am trying to find the Id of a contact via the phone number and try as follows but I get an ID of 2324 when it should be 404, anyone any ideas why? static { int sdk=new Integer(Build.VERSION.SDK).intValue(); if (sdk=5) { try { Class clazz=Class.forName(android.provider.ContactsContract$CommonDataKinds$Phone); CONTENT_URI=(Uri)clazz.getField(CONTENT_URI).get(clazz); NAME_URI=(String) clazz.getField(DISPLAY_NAME).get(clazz); ID_URI=(String) clazz.getField(_ID).get(clazz); NUMBER_URI=(String)clazz.getField(NUMBER).get(clazz); } catch (Throwable t) { Log.e(reflection, Exception when determining CONTENT_URI, t); } } else { CONTENT_URI=Contacts.People.CONTENT_URI; NAME_URI=People.NAME; ID_URI=People._ID; NUMBER_URI=People.NUMBER; } } public int getContactId(String phoneNumber){ String [] requestedColumns = { NAME_URI, ID_URI }; Cursor contacts = context.getContentResolver().query( CONTENT_URI, requestedColumns, NUMBER_URI + =' + phoneNumber + ', null, null); Log.d(GETDETAILS, Count = + contacts.getCount()); if(contacts.getCount() 0){ int nameIdx = contacts.getColumnIndex(NAME_URI); int idIdx = contacts.getColumnIndex(ID_URI); contacts.moveToFirst(); Log.d(DETAILS, Name : + contacts.getString(nameIdx)); Log.d(DETAILS, Type : + contacts.getString(idIdx)); return contacts.getInt(idIdx); } else return 0; } On Wed, Jul 28, 2010 at 10:07 AM, Donal Rafferty draf...@gmail.com wrote: Thanks Kostya, I have grasped that now and have it working in one part of my application. I have another problem now though. I have this in code: Uri contactUri = ContentUris.withAppendedId (Contacts.People.CONTENT_URI, contactId); Intent intent = new Intent(Intent.ACTION_VIEW, contactUri); startActivity(intent); This launchs the contacts application and displays the contact according to the ID supplied, this works in all Android versions except 2.2 (API level 8) and I cant find the equivalant code for 2.2. I have tried ContactsContract.PhoneLookup, ContactsContract.Contact, ContactsContract.CommonDataKinds but none of them seem to let me launch the contacts application and dispaly a contacts info according to a supplied ID. Can anyone help with this? On Tue, Jul 27, 2010 at 4:27 PM, Kostya Vasilyev kmans...@gmail.comwrote: Hi, The offending line is this: ContactsContract.Contacts Even though you're not referencing this nested member on the execution path, the Java VM still tries to resolve all external references made by your code. This is done when your code is first loaded into memory for execution, before it is run. At this point, the external reference fails (since you are on Android 1.5), and your code is not able to load and execute. The solution is to use Java Reflection feature to not make any compile-time references to missing classes / members, but rather check at runtime whether they exist. This way, there are no compile-time references to stuff that only exists in later API levels, and your code can gracefully fall back to earlier APIs at runtime. The key is what references your code makes at compile time, and, as a consequence, when your class is loaded into memory. http://java.sun.com/developer/technicalArticles/ALT/Reflection/ That is the general solution. However, in this particular case, you could duplicate the URI string from ContactsContract.Contacts.CONTENT_URI to some string constant in your code. Just like this: class YourClass { private static final String ANDROID_1_X_CONTACTS_URI = People.CONTENT_URI; private static final String ANDROID_2_X_CONTACTS_URI = content://put correct value here; } Then use the appropriate constant (one of the two) based on API level just like you're trying to do now. -- Kostya 27.07.2010 18:10, draf...@gmail.com пишет: I have the following piece of code in my Android application that looks up a contacts ID, I have just changed the target from 1.5 to 2.2 but with a min SDK of 3 (1.5) so that I can use the ContactsContract Uri in 2.2 and the People Uri in 1.5. However the code leads to the following error when run on 1.5 devices: 07-27 15:02:53.382: WARN/dalvikvm(12656): VFY: unable to resolve static field 25 (CONTENT_URI) in Landroid/provider/ContactsContract $Contacts; --- From google I have garnered that I need to use reflection in this case to allow the application run on both versions of Android? I have seen example's of how to use reflection
[android-developers] Notification Error - contentIntent
I have a service running that updates a notification in the notification bar when it recieves a message saying it has to be changed. However I get the following error sometimes when the notification is to be updated java.lang.IllegalArgumentException: contentIntent required Here is my code: Variable setup --- int icon = R.drawable.notification; CharSequence tickerText = Test; long when = System.currentTimeMillis(); PendingIntent contentIntent; Notification notification = new Notification(icon, tickerText, when); NotificationManager mNotificationManager; --- NotificationManager Creation --- String ns = Context.NOTIFICATION_SERVICE; mNotificationManager = (NotificationManager) getSystemService(ns); --- Notification Creation --- Intent notificationIntent = new Intent(this, TestsApp.class); contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); notification.flags |= Notification.FLAG_NO_CLEAR; notification.icon = R.drawable.notification3; notification.setLatestEventInfo(this, Registering, Test, contentIntent); mNotificationManager.notify(1, notification); --- Update of Notification --- notification.icon = R.drawable.notification2; notification.setLatestEventInfo(getApplicationContext(), Registered, Test, contentIntent); mNotificationManager.notify(1, notification); --- So something is happening my contentIntent somewhere along the line, would that be correct? It is declared at the top of my Service class as a member variable and is not used anywhere else in the code apart from shown above, so where could it be getting reset to null? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] A clear, concise tutorial on PreferenceActivity Preferences?
Thanks Mark. To access my preferences outside my PreferenceActivity in another Activity or a Service can I use PreferenceManager. getDefaultSharedPreferences() also? In your code here: http://github.com/commonsguy/cw-android/blob/master/Prefs/Dialogs/src/com/commonsware/android/prefdialogs/DialogsDemo.java I see SharedPreferences prefs=PreferenceManager is used, is that correct? Should I use it like that to retrieve my preferences eslewhere in my application? On Tue, Jun 1, 2010 at 4:26 PM, Mark Murphy mmur...@commonsware.com wrote: draf...@gmail.com wrote: I was wondering can anyone direct me to a detailed Preferences tutorial? Or provide me with a bit of help here? I have my preferences saved in preferences.xml as follows: PreferenceScreen xmlns:android=http://schemas.android.com/apk/res/ android PreferenceCategory android:title=Wifi Settings EditTextPreference android:key=edittext_block_attach_err android:title=@string/title_edittext_preference android:summary=@string/summary_edittext_preference android:dialogTitle=@string/ dialog_title_edittext_preference / /PreferenceCategory /PreferenceScreen I then have a preference activity as follows: public class WlanSettings extends PreferenceActivity { SharedPreferences prefs; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); prefs = this.getSharedPreferences(CiceroWlanSettings, Activity.MODE_PRIVATE); } This display's the EditTextPreference fine but how do I then set up a default preference to be displayed in the dialog box that pops up with an EditTextPreference? android:defaultValue in the XML. And How do I save changes that occur in my preference activity to my preferences? It happens automatically. I don't know what that prefs=this.getSharedPreferences() line is for. It's not needed, and it's probably reading the wrong file, anyway. Use PreferenceManager.getDefaultSharedPreferences() for work with the file that will be used by the PreferenceActivity. See: http://github.com/commonsguy/cw-android/tree/master/Prefs/Dialogs/ -- Mark Murphy (a Commons Guy) http://commonsware.com | http://github.com/commonsguy http://commonsware.com/blog | http://twitter.com/commonsguy _Android Programming Tutorials_ Version 2.0 Available! -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: How to update a Widget dynamically (Not waiting 30 min for onUpdate to be called)?
Thanks all for the help. This is just a learning project for myself and wont be released on the Android market. So I am aware that it may not be the best approach but it is something to learn from. I have implemented the widget with the following code: public class WlanWidget extends AppWidgetProvider{ RemoteViews remoteViews; AppWidgetManager appWidgetManager; ComponentName thisWidget; WifiManager wifiManager; public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { Timer timer = new Timer(); timer.scheduleAtFixedRate(new WlanTimer(context, appWidgetManager), 1, 1000); } private class WlanTimer extends TimerTask{ RemoteViews remoteViews; AppWidgetManager appWidgetManager; ComponentName thisWidget; public WlanTimer(Context context, AppWidgetManager appWidgetManager) { this.appWidgetManager = appWidgetManager; remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget); thisWidget = new ComponentName(context, WlanWidget.class); wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); } @Override public void run() { remoteViews.setTextViewText(R.id.widget_textview, wifiManager.getConnectionInfo().getSSID()); if((GlobalData.MIN_RSSI_LEVEL - (Math.abs(wifiManager.getConnectionInfo().getRssi())*2) = 100)){ remoteViews.setTextViewText(R.id.widget_percentage, (GlobalData.MIN_RSSI_LEVEL - (Math.abs(wifiManager.getConnectionInfo().getRssi())*2)+%)); } else { remoteViews.setTextViewText(R.id.widget_percentage, 100%); } appWidgetManager.updateAppWidget(thisWidget, remoteViews); } } } This appears to work fine but it then seems to make the android.process.acore crash, it also crashes theandroid.process.acore if I try to long press on the widget. I get the following messages in logcat then: 05-31 10:12:49.158: WARN/WindowManager(88): Key dispatching timed out sending to com.android.launcher/com.android.launcher.Launcher 05-31 10:12:49.168: WARN/WindowManager(88): Dispatch state: {{KeyEvent{action=1 code=82 repeat=0 meta=0 scancode=139 mFlags=8} to Window{433114a0 com.android.launcher/com.android.launcher.Launcher paused=false} @ 1275296936375 lw=Window{433114a0 com.android.launcher/com.android.launcher.Launcher paused=false} lb=android.os.binderpr...@43311228 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{433114a0 com.android.launcher/com.android.launcher.Launcher paused=false}}} 05-31 10:12:49.168: WARN/WindowManager(88): Current state: {{null to Window{433114a0 com.android.launcher/com.android.launcher.Launcher paused=false} @ 1275297169174 lw=Window{433114a0 com.android.launcher/com.android.launcher.Launcher paused=false} lb=android.os.binderpr...@43311228 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{433114a0 com.android.launcher/com.android.launcher.Launcher paused=false}}} 05-31 10:12:49.238: INFO/ActivityManager(88): ANR in process: android.process.acore (last in android.process.acore) 05-31 10:12:49.238: INFO/ActivityManager(88): Annotation: keyDispatchingTimedOut 05-31 10:12:49.238: INFO/ActivityManager(88): CPU usage: 05-31 10:12:49.238: INFO/ActivityManager(88): Load: 5.93 / 3.18 / 1.33 05-31 10:12:49.238: INFO/ActivityManager(88): CPU usage from 16159ms to 59ms ago: 05-31 10:12:49.238: INFO/ActivityManager(88): android.process.acore: 77% = 77% user + 0% kernel / faults: 286 minor 05-31 10:12:49.238: INFO/ActivityManager(88): system_server: 16% = 14% user + 1% kernel / faults: 213 minor 05-31 10:12:49.238: INFO/ActivityManager(88): com.networks: 4% = 4% user + 0% kernel / faults: 365 minor 05-31 10:12:49.238: INFO/ActivityManager(88): synaptics_wq: 0% = 0% user + 0% kernel 05-31 10:12:49.238: INFO/ActivityManager(88): wpa_supplicant: 0% = 0% user + 0% kernel 05-31 10:12:49.238: INFO/ActivityManager(88): tiwlan_wifi_wq: 0% = 0% user + 0% kernel 05-31 10:12:49.238: INFO/ActivityManager(88): events/0: 0% = 0% user + 0% kernel 05-31 10:12:49.238: INFO/ActivityManager(88): adbd: 0% = 0% user + 0% kernel 05-31 10:12:49.238: INFO/ActivityManager(88): TOTAL: 100% = 96% user + 3% kernel 05-31 10:12:49.248: INFO/ActivityManager(88): Removing old ANR trace file from /data/anr/traces.txt 05-31 10:12:49.288: INFO/Process(88): Sending signal. PID: 147 SIG: 3 05-31 10:12:49.288: INFO/dalvikvm(147): threadid=7: reacting to signal 3 05-31 10:12:49.488: INFO/Process(88): Sending signal. PID: 88 SIG: 3 05-31 10:12:49.488: INFO/dalvikvm(88): threadid=7: reacting to signal 3 05-31 10:12:49.578: INFO/dalvikvm(147): Wrote stack trace to '/data/anr/traces.txt' Can anyone help with the problem? Or pin point the area the problem is coming from? Thanks in advance On
Re: [android-developers] Re: How to update a Widget dynamically (Not waiting 30 min for onUpdate to be called)?
Argh! Timer was getting created over and over again, still if anyone can see other improvements please let me know. On Mon, May 31, 2010 at 10:18 AM, Donal Rafferty draf...@gmail.com wrote: Thanks all for the help. This is just a learning project for myself and wont be released on the Android market. So I am aware that it may not be the best approach but it is something to learn from. I have implemented the widget with the following code: public class WlanWidget extends AppWidgetProvider{ RemoteViews remoteViews; AppWidgetManager appWidgetManager; ComponentName thisWidget; WifiManager wifiManager; public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { Timer timer = new Timer(); timer.scheduleAtFixedRate(new WlanTimer(context, appWidgetManager), 1, 1000); } private class WlanTimer extends TimerTask{ RemoteViews remoteViews; AppWidgetManager appWidgetManager; ComponentName thisWidget; public WlanTimer(Context context, AppWidgetManager appWidgetManager) { this.appWidgetManager = appWidgetManager; remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget); thisWidget = new ComponentName(context, WlanWidget.class); wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); } @Override public void run() { remoteViews.setTextViewText(R.id.widget_textview, wifiManager.getConnectionInfo().getSSID()); if((GlobalData.MIN_RSSI_LEVEL - (Math.abs(wifiManager.getConnectionInfo().getRssi())*2) = 100)){ remoteViews.setTextViewText(R.id.widget_percentage, (GlobalData.MIN_RSSI_LEVEL - (Math.abs(wifiManager.getConnectionInfo().getRssi())*2)+%)); } else { remoteViews.setTextViewText(R.id.widget_percentage, 100%); } appWidgetManager.updateAppWidget(thisWidget, remoteViews); } } } This appears to work fine but it then seems to make the android.process.acore crash, it also crashes theandroid.process.acore if I try to long press on the widget. I get the following messages in logcat then: 05-31 10:12:49.158: WARN/WindowManager(88): Key dispatching timed out sending to com.android.launcher/com.android.launcher.Launcher 05-31 10:12:49.168: WARN/WindowManager(88): Dispatch state: {{KeyEvent{action=1 code=82 repeat=0 meta=0 scancode=139 mFlags=8} to Window{433114a0 com.android.launcher/com.android.launcher.Launcher paused=false} @ 1275296936375 lw=Window{433114a0 com.android.launcher/com.android.launcher.Launcher paused=false} lb=android.os.binderpr...@43311228 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{433114a0 com.android.launcher/com.android.launcher.Launcher paused=false}}} 05-31 10:12:49.168: WARN/WindowManager(88): Current state: {{null to Window{433114a0 com.android.launcher/com.android.launcher.Launcher paused=false} @ 1275297169174 lw=Window{433114a0 com.android.launcher/com.android.launcher.Launcher paused=false} lb=android.os.binderpr...@43311228 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{433114a0 com.android.launcher/com.android.launcher.Launcher paused=false}}} 05-31 10:12:49.238: INFO/ActivityManager(88): ANR in process: android.process.acore (last in android.process.acore) 05-31 10:12:49.238: INFO/ActivityManager(88): Annotation: keyDispatchingTimedOut 05-31 10:12:49.238: INFO/ActivityManager(88): CPU usage: 05-31 10:12:49.238: INFO/ActivityManager(88): Load: 5.93 / 3.18 / 1.33 05-31 10:12:49.238: INFO/ActivityManager(88): CPU usage from 16159ms to 59ms ago: 05-31 10:12:49.238: INFO/ActivityManager(88): android.process.acore: 77% = 77% user + 0% kernel / faults: 286 minor 05-31 10:12:49.238: INFO/ActivityManager(88): system_server: 16% = 14% user + 1% kernel / faults: 213 minor 05-31 10:12:49.238: INFO/ActivityManager(88): com.networks: 4% = 4% user + 0% kernel / faults: 365 minor 05-31 10:12:49.238: INFO/ActivityManager(88): synaptics_wq: 0% = 0% user + 0% kernel 05-31 10:12:49.238: INFO/ActivityManager(88): wpa_supplicant: 0% = 0% user + 0% kernel 05-31 10:12:49.238: INFO/ActivityManager(88): tiwlan_wifi_wq: 0% = 0% user + 0% kernel 05-31 10:12:49.238: INFO/ActivityManager(88): events/0: 0% = 0% user + 0% kernel 05-31 10:12:49.238: INFO/ActivityManager(88): adbd: 0% = 0% user + 0% kernel 05-31 10:12:49.238: INFO/ActivityManager(88): TOTAL: 100% = 96% user + 3% kernel 05-31 10:12:49.248: INFO/ActivityManager(88): Removing old ANR trace file from /data/anr/traces.txt 05-31 10:12:49.288: INFO/Process(88): Sending signal. PID: 147 SIG: 3 05-31 10:12:49.288: INFO/dalvikvm(147): threadid=7: reacting to signal 3 05-31 10:12:49.488: INFO/Process(88
[android-developers] Re: Does Observer not work in a Android Service?
Never mind! Monday Morning coding mistake, sorry! On Mon, May 31, 2010 at 11:44 AM, draf...@gmail.com draf...@gmail.comwrote: I am using the Observer pattern in my Android application to notify a running service that some data has changed: Here is the code outside the Service: (WifiConnectionManager) --- //Observables @Override public void NotifyQCLevelChange(QCLevel newQoSLevel) { setChanged(); notifyObservers( newQoSLevel ); } @Override public void NotifyQCPercentageChange(int percentage) { setChanged(); notifyObservers( percentage ); } --- Where the observables get updated within an Observer update method: (WifiConnectionManager) --- @Override public void update(Observable arg0, Object arg) { if( !iActive ) return; if( arg0 instanceof WifiMonitor ){ Log.d(WifiConnectionManager, update from WiFiMonitor ss=: + arg.toString()); if( iConnectionState.equals(ConnectionState.IPACTIVE) ) { int qcPercentage = Integer.parseInt(arg.toString()); Log.d(GetActiveQCLevel, GetActiveQCLevel called); QCLevel aConnectionQCLevel = GetActiveQCLevel(qcPercentage); if( !aConnectionQCLevel.equals(iConnectionQCLevel) ) { iConnectionQCLevel = aConnectionQCLevel; NotifyQCLevelChange(iConnectionQCLevel); Log.d(NotifyQCLevelChange, NotifyQCLevelChange); } NotifyQCPercentageChange(qcPercentage); Log.d(NotifyQCPercentageChange, NotifyQCPercentageChange); } } --- And finally the Observer in my service: (WifiService) --- @Override public void update(Observable observable, Object data) { if( observable instanceof WifiConnectionManager data instanceof QCLevel){ Log.d(WifiConnectionManager, instanceof QCLevel); } else if( observable instanceof WifiConnectionManager data instanceof Integer){ Log.d(WifiConnectionManager, instanceof Integer); } else if( observable instanceof WifiConnectionManager){ Log.d(WifiConnectionManager, instanceof WifiConnectionManager); } --- From the log I can see that Log.d(GetActiveQCLevel, GetActiveQCLevel called); Log.d(NotifyQCPercentageChange, NotifyQCPercentageChange); get called but nothing in the update method of the Observer in my service (WifiService) gets called. Can anyone see where the problem is or is there a restriction I am not aware of? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] How to listen for changes on Calls.CallLog
Have you tried just doing the same with the CallLog content provider? - CallLog.Calls.CONTENT_URI On Mon, May 31, 2010 at 12:46 PM, mike hasitharand...@gmail.com wrote: hi guys, is there a way to listen to changes in Calls.CallLog. i have listen to SMS inbox changes using String url = content://sms/; Uri uri = Uri.parse(url); getContentResolver().registerContentObserver(uri, true, new MyInboxListener(handler)); Uri Sms = Uri.parse(content://sms/inbox); Cursor c = getContentResolver().query(Sms, null, null, null, null); is there a way to listene to CallLog using registerContentObserver. regards, Mike -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: SendOrderedBroadcast Help
**UPDATED CODE:** --- sendOrderedBroadcast(i, null, domainBroadcast, null, Activity.RESULT_OK, null, null); --- class DomainBroadcast extends BroadcastReceiver{ @Override public void onReceive(Context arg0, Intent intent) { String action = intent.getAction(); if(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT.equals(action)){ Log.d(BROADCAST, Returning broadcast); Bundle b = intent.getExtras(); Log.d(BROADCAST, Returning broadcast + b.getInt(com.testnetworks.INT_TEST)); } } --- @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT.equals(action)){ Bundle b = intent.getExtras(); int testQCLevel = b.getInt(com.testnetworks.QCLEVEL); switch(testQCLevel){ case 1: Log.d(QCLevel , QCLevel = UNAVAILABLE); break; case 2: Log.d(QCLevel , QCLevel = BELOWUSABILITY); break; case 3: Log.d(QCLevel , QCLevel = VOICE); break; } intent.putExtra(com.testnetworks.INT_TEST, 100); } --- So according to the Doc's I should recieve 100 back in my DomainBroadcast reciever but it always comes back as 0. Can anyone see why? On Mon, May 31, 2010 at 2:03 PM, draf...@gmail.com draf...@gmail.comwrote: I am trying to use a sendOrderedBroadcast in my Android app. I want to be able to send the Intent from one of my applications to another and I then want to get data back from the Application that recieves the Intent, in this case a boolean true or false. Here is the current code: Intent i = new Intent(); i.setAction(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT); i.putExtra(com.testnetworks.QCLEVEL, aProposedTheoreticalQoSLevel); sendOrderedBroadcast(i, null, null, null, Activity.RESULT_OK, null, null); Is this the correct way to achieve what I want? If so what do I use as the resultReceiver* parameter? (3rd parameter) And then how to I recieve data back from the Broadcast? I have done a quick google and not come up with any examples, any help or examples greatly appreciated. *resultReceiver - Your own BroadcastReceiver to treat as the final receiver of the broadcast. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: Get Notified when a new access point is added?
Would using NETWORK_IDS_CHANGED_ACTION be an option? http://developer.android.com/intl/de/reference/android/net/wifi/WifiManager.html#NETWORK_IDS_CHANGED_ACTION On Wed, May 26, 2010 at 4:38 PM, draf...@gmail.com draf...@gmail.comwrote: I was wondering is it possible to get a notification of when a new configured network is added to the WifiManager in Android? I know you can get the current list of configured networks http://developer.android.com/intl/de/reference/android/net/wifi/WifiManager.html#getConfiguredNetworks%28%29 But is it possible to get notification of when a new one is added? I dont see anything in the WifiManager that would be helpful. Has anyone any other ideas? Or insight into how this could be achieved? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] How to scan Access Points and select strongest signal?
Thanks again Kostya, One final thing (well final for now, I'll probably run into more problems after testing) I was wondering what method you chose to convert the RSSI to a percentage? I have been reading up on it and found the formula that uses RSSI_MAX value but I'm unsure of the max RSSI value of the Wifi adapters. Another way I thought about doing it is using the calculateSignal method and converting to a percentage that way. Can you provide any guidance on the matter? 2010/5/18 Kostya Vasilyev kmans...@gmail.com Donal, It's in scanResult.capabilites, and it's a pretty self-explanatory string. describeCapabilities is inhertied from Parcelable and has to do with persistence. -- Kostya 18.05.2010 12:48, Donal Rafferty пишет: Very good tutorial there, thanks. One thing missing though is how you decide whether a scan result is an open netowrk or one using WEP or WPA/WPA2? Do you have to use scanResult.describeContents() or scanResult.capabilities in some way to determine which type of network to add? 2010/5/18 Kostya Vasilyev kmans...@gmail.com Donald, Yes, obviously it's possible - Android's built-it UI for connection management does it somehow :) In my program, I do it like this: http://kmansoft.wordpress.com/2010/04/08/adding-wifi-networks-to-known-list/ -- Kostya Vasilev -- WiFi Manager + pretty widget - https://kmansoft.wordpress.com 18.05.2010 12:25, Donal Rafferty пишет: Thanks Kostya, I think I'm nearly there. My current problem is adding a new configured access point. I have it hard coded in my code as follows: --- WifiConfiguration wc = new WifiConfiguration(); wc.SSID = ''+scanResult.SSID+''; wc.status = WifiConfiguration.Status.ENABLED; wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA); int res = mainWifi.addNetwork(wc); Log.d(WifiPreference, add Network returned + res ); boolean b = mainWifi.enableNetwork(res, true); Log.d(WifiPreference, enableNetwork returned + b ); -- But is there a way I can get the information needed from a Scan Result to add a new Wifi configuration? Things like PairwiseCiphers, Protocols, AuthAlgorithms, KeyManagement I cant see a method to retrieve that info from a Scan result. Is it possible? 2010/5/14 Kostya Vasilyev kmans...@gmail.com Donald, Yes, your algorithm is correct. Only add network from the scan list to the known list if not already there. As for scanning on the move, take a look at wake locks. 14 мая, 2010 5:35 PM пользователь Donal Rafferty draf...@gmail.com написал: Thanks again Kostya, I have downloaded your app and had a look, its very nice, the widget will come in very handy for my testing! I was aware of the known versus as is quotes. My problem is for my app to work I need it to scan for AP's when the device is on the move. So it should scan, find a new AP that has the highest RSSI in the area and connect to that. The problem is I can only connect to a known or already configured AP and not one resulting from a scan. So would I be correct in saying that I need to do the following? Scan Get the highest RSSI Compare the SSID of this AP to the Wifi Config list If its in the Wifi config list then connect If its not then add a new access point (As a configured AP) Get the id of the newly added AP and connect On Fri, May 14, 2010 at 1:47 PM, Kostya Vasilyev kmans...@gmail.com wrote: Donal, I think... -- You received this message because you are subscribed to the Google Groups Android Developers group... -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You
Re: [android-developers] How to scan Access Points and select strongest signal?
Thanks Kostya, I think I'm nearly there. My current problem is adding a new configured access point. I have it hard coded in my code as follows: --- WifiConfiguration wc = new WifiConfiguration(); wc.SSID = ''+scanResult.SSID+''; wc.status = WifiConfiguration.Status.ENABLED; wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA); int res = mainWifi.addNetwork(wc); Log.d(WifiPreference, add Network returned + res ); boolean b = mainWifi.enableNetwork(res, true); Log.d(WifiPreference, enableNetwork returned + b ); -- But is there a way I can get the information needed from a Scan Result to add a new Wifi configuration? Things like PairwiseCiphers, Protocols, AuthAlgorithms, KeyManagement I cant see a method to retrieve that info from a Scan result. Is it possible? 2010/5/14 Kostya Vasilyev kmans...@gmail.com Donald, Yes, your algorithm is correct. Only add network from the scan list to the known list if not already there. As for scanning on the move, take a look at wake locks. 14 мая, 2010 5:35 PM пользователь Donal Rafferty draf...@gmail.com написал: Thanks again Kostya, I have downloaded your app and had a look, its very nice, the widget will come in very handy for my testing! I was aware of the known versus as is quotes. My problem is for my app to work I need it to scan for AP's when the device is on the move. So it should scan, find a new AP that has the highest RSSI in the area and connect to that. The problem is I can only connect to a known or already configured AP and not one resulting from a scan. So would I be correct in saying that I need to do the following? Scan Get the highest RSSI Compare the SSID of this AP to the Wifi Config list If its in the Wifi config list then connect If its not then add a new access point (As a configured AP) Get the id of the newly added AP and connect On Fri, May 14, 2010 at 1:47 PM, Kostya Vasilyev kmans...@gmail.com wrote: Donal, I think... -- You received this message because you are subscribed to the Google Groups Android Developers group... -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] How to scan Access Points and select strongest signal?
Very good tutorial there, thanks. One thing missing though is how you decide whether a scan result is an open netowrk or one using WEP or WPA/WPA2? Do you have to use scanResult.describeContents() or scanResult.capabilities in some way to determine which type of network to add? 2010/5/18 Kostya Vasilyev kmans...@gmail.com Donald, Yes, obviously it's possible - Android's built-it UI for connection management does it somehow :) In my program, I do it like this: http://kmansoft.wordpress.com/2010/04/08/adding-wifi-networks-to-known-list/ -- Kostya Vasilev -- WiFi Manager + pretty widget - https://kmansoft.wordpress.com 18.05.2010 12:25, Donal Rafferty пишет: Thanks Kostya, I think I'm nearly there. My current problem is adding a new configured access point. I have it hard coded in my code as follows: --- WifiConfiguration wc = new WifiConfiguration(); wc.SSID = ''+scanResult.SSID+''; wc.status = WifiConfiguration.Status.ENABLED; wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA); int res = mainWifi.addNetwork(wc); Log.d(WifiPreference, add Network returned + res ); boolean b = mainWifi.enableNetwork(res, true); Log.d(WifiPreference, enableNetwork returned + b ); -- But is there a way I can get the information needed from a Scan Result to add a new Wifi configuration? Things like PairwiseCiphers, Protocols, AuthAlgorithms, KeyManagement I cant see a method to retrieve that info from a Scan result. Is it possible? 2010/5/14 Kostya Vasilyev kmans...@gmail.com Donald, Yes, your algorithm is correct. Only add network from the scan list to the known list if not already there. As for scanning on the move, take a look at wake locks. 14 мая, 2010 5:35 PM пользователь Donal Rafferty draf...@gmail.com написал: Thanks again Kostya, I have downloaded your app and had a look, its very nice, the widget will come in very handy for my testing! I was aware of the known versus as is quotes. My problem is for my app to work I need it to scan for AP's when the device is on the move. So it should scan, find a new AP that has the highest RSSI in the area and connect to that. The problem is I can only connect to a known or already configured AP and not one resulting from a scan. So would I be correct in saying that I need to do the following? Scan Get the highest RSSI Compare the SSID of this AP to the Wifi Config list If its in the Wifi config list then connect If its not then add a new access point (As a configured AP) Get the id of the newly added AP and connect On Fri, May 14, 2010 at 1:47 PM, Kostya Vasilyev kmans...@gmail.com wrote: Donal, I think... -- You received this message because you are subscribed to the Google Groups Android Developers group... -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group
Re: [android-developers] How to scan Access Points and select strongest signal?
Thanks for that Kostya I have come across a bit of a problem though. After a scan there are 11 AP's found and all 11 show up in the list in the Wifi settings on the device. But when I use getConfiguredNetworkshttp://developer.android.com/reference/android/net/wifi/WifiManager.html#getConfiguredNetworks() it only returns 4 configured networks. This happens despite the 11 AP's showing up in the settings after a scan. So the majority of the time when I compared the AP with the best signal's SSID with the SSID's in the Configured Network list the majority of the time no matching SSID is found. In that case I try to add a new network but this ends up creating duplicates of the AP in the settings list. On Thu, May 13, 2010 at 5:24 PM, Kostya Vasilyev kmans...@gmail.com wrote: Hi, 1. Regarding duplicates. Android maintains a list of known networks - for each, it stores the SSID, encryption configuration, along with the password, if necessary. Each known network also has a unique numeric ID. You can only connect to networks on this known list, because, as you correctly figured out, connecting to a network is done by its id. However, it's not necessary to add the network to this list if it's already been added (by Android or by your application). You can get the list of known networks from the WifiManager: http://developer.android.com/reference/android/net/wifi/WifiManager.html#getConfiguredNetworks () You can match these networks to your live scan results using their SSIDs. If the network is already in the known list, just use its numeric id. If not, you get the numeric ID back from addNetwork(). 2. Once you have the numeric ID, call enableNetwork(networkId, true) to connect. The second parameter means disconnect from others, not forget all other network as its name might seem to imply. -- Kostya Vasilyev 2010/5/13 draf...@gmail.com draf...@gmail.com I am currently trying to write a class in Android that will Scan for access points, calculate which access point has the best signal and then connect to that access point. So the application will be able to scan on the move and attach to new access points on the go. I have the scanning and calculation of the best signal working. But when it comes to attaching to the best access point I am having trouble. It appears that enableNetwork(netid, othersTrueFalse) is the only method for attaching to an Access point but this causes problems as from my Scan Results I am not able to get the id of the access point with the strongest signal. This is my code: --- public void doWifiScan(){ scanTask = new TimerTask() { public void run() { handler.post(new Runnable() { public void run() { sResults = wifiManager.scan(getBaseContext()); if(sResults!=null) Log.d(TIMER, sResults count + sResults.size()); ScanResult scan = wifiManager.calculateBestAP(sResults); wifiManager.addNewAccessPoint(scan); } }); }}; t.schedule(scanTask, 3000, 3); } --- public ScanResult calculateBestAP(ListScanResult sResults){ ScanResult bestSignal = null; for (ScanResult result : sResults) { if (bestSignal == null || WifiManager.compareSignalLevel(bestSignal.level, result.level) 0) bestSignal = result; } String message = String.format(%s networks found. %s is the strongest. %s is the bsid, sResults.size(), bestSignal.SSID, bestSignal.BSSID); Log.d(sResult, message); return bestSignal; } --- public void addNewAccessPoint(ScanResult scanResult){ WifiConfiguration wc = new WifiConfiguration(); wc.SSID = '\' + scanResult.SSID + '\'; //wc.preSharedKey = \password\; wc.hiddenSSID = true; wc.status = WifiConfiguration.Status.ENABLED; wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); int res = mainWifi.addNetwork(wc); Log.d(WifiPreference, add Network returned + res ); boolean b = mainWifi.enableNetwork(res, false); Log.d(WifiPreference, enableNetwork returned + b ); } --- When I try to use addNewAccessPoint(ScanResult scanResult) it just adds another AP to the list in the settings application with the
Re: [android-developers] How to scan Access Points and select strongest signal?
Thanks again Kostya, I have downloaded your app and had a look, its very nice, the widget will come in very handy for my testing! I was aware of the known versus as is quotes. My problem is for my app to work I need it to scan for AP's when the device is on the move. So it should scan, find a new AP that has the highest RSSI in the area and connect to that. The problem is I can only connect to a known or already configured AP and not one resulting from a scan. So would I be correct in saying that I need to do the following? Scan Get the highest RSSI Compare the SSID of this AP to the Wifi Config list If its in the Wifi config list then connect If its not then add a new access point (As a configured AP) Get the id of the newly added AP and connect On Fri, May 14, 2010 at 1:47 PM, Kostya Vasilyev kmans...@gmail.com wrote: Donal, I think you are not matching the SSIDs of known and live networks correctly. The SSIDs in the known list are enclosed in double quotes: http://developer.android.com/reference/android/net/wifi/WifiConfiguration.html#SSID The SSIDs in the live scan result list are as is, without the quotes. Your code needs to take this into consideration when matching the networks between the two lists. BTW, feel free to download and try my WiFi management tool, I think it should make it easier to see what's going on. See the link in my signature below. -- Kostya Vasilyev ~ WiFi Manager + pretty widget ~ http://kmansoft.wordpress.com/sw 14.05.2010 14:33, Donal Rafferty пишет: Thanks for that Kostya I have come across a bit of a problem though. After a scan there are 11 AP's found and all 11 show up in the list in the Wifi settings on the device. But when I use getConfiguredNetworkshttp://developer.android.com/reference/android/net/wifi/WifiManager.html#getConfiguredNetworks() it only returns 4 configured networks. This happens despite the 11 AP's showing up in the settings after a scan. So the majority of the time when I compared the AP with the best signal's SSID with the SSID's in the Configured Network list the majority of the time no matching SSID is found. In that case I try to add a new network but this ends up creating duplicates of the AP in the settings list. On Thu, May 13, 2010 at 5:24 PM, Kostya Vasilyev kmans...@gmail.comwrote: Hi, 1. Regarding duplicates. Android maintains a list of known networks - for each, it stores the SSID, encryption configuration, along with the password, if necessary. Each known network also has a unique numeric ID. You can only connect to networks on this known list, because, as you correctly figured out, connecting to a network is done by its id. However, it's not necessary to add the network to this list if it's already been added (by Android or by your application). You can get the list of known networks from the WifiManager: http://developer.android.com/reference/android/net/wifi/WifiManager.html#getConfiguredNetworks () You can match these networks to your live scan results using their SSIDs. If the network is already in the known list, just use its numeric id. If not, you get the numeric ID back from addNetwork(). 2. Once you have the numeric ID, call enableNetwork(networkId, true) to connect. The second parameter means disconnect from others, not forget all other network as its name might seem to imply. -- Kostya Vasilyev 2010/5/13 draf...@gmail.com draf...@gmail.com I am currently trying to write a class in Android that will Scan for access points, calculate which access point has the best signal and then connect to that access point. So the application will be able to scan on the move and attach to new access points on the go. I have the scanning and calculation of the best signal working. But when it comes to attaching to the best access point I am having trouble. It appears that enableNetwork(netid, othersTrueFalse) is the only method for attaching to an Access point but this causes problems as from my Scan Results I am not able to get the id of the access point with the strongest signal. This is my code: --- public void doWifiScan(){ scanTask = new TimerTask() { public void run() { handler.post(new Runnable() { public void run() { sResults = wifiManager.scan(getBaseContext()); if(sResults!=null) Log.d(TIMER, sResults count + sResults.size()); ScanResult scan = wifiManager.calculateBestAP(sResults); wifiManager.addNewAccessPoint(scan); } }); }}; t.schedule(scanTask, 3000, 3); } --- public ScanResult calculateBestAP(ListScanResult sResults){ ScanResult bestSignal = null; for (ScanResult result : sResults) { if (bestSignal == null
Re: [android-developers] Re: Audio stuttering when using AudioTrack.
Hi Niko, Do you just process Audio buffers in the NDK, you dont actually access any low level audio classes or streams? On Thu, Apr 15, 2010 at 4:51 PM, niko20 nikolatesl...@yahoo.com wrote: Also was going to mention that in Android foreground apps always get priority in scheduling regardless of thread priority. Read that in these forums somewhere. -niko On Apr 15, 10:50 am, niko20 nikolatesl...@yahoo.com wrote: This is why I've moved any new projects that generate audio in the NDK to create the audio data and pass the buffers back to me. I've seen an increase in speed in buffer creation (44Khz stereo sound) from 400ms down to 10ms or so to mix a buffer, over 100x speed increase. It's best to put any audio processing in the NDK to get max speed possible. -niko On Apr 15, 3:35 am, Jesper Hansen jes...@jesperhansen.net wrote: On my N1, my player spends around 15-30% of its time generating the audio data. The my player app has focus everything sounds fine, but when I start another app that also requires a lot of cpu time the sounds start to stutter badly. Using top and ps on the N1, I can see that the applications that causes my sounds to stutter, have a nice value of 0 (THREAD_PRIORITY_DEFAULT). It puzzles me why these applications get more attention from the scheduler,than my thread, which runs at nice level -16 (THREAD_PRIORITY_AUDIO). On Thu, Apr 15, 2010 at 04:01, ani anish198519851...@gmail.com wrote: So what you are trying to say is in-between(time it takes to play the audio) the audio writes you are doing some cpu intensive operations which is causing this stuttering ??? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.comandroid-developers%2Bunsubs cr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en To unsubscribe, reply using remove me as the subject. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Paid apps in more countries - I am sick about it
Might be helpful if you state which country your in and want the paid market to come to? I'm in Ireland and to be honest Android is only starting to take off here so there was no sense in having a paid market here. I believe by the end of the year there will be enough Android users to make an Irish paid market worthwhile but its been quiet clean a paid apps market in Ireland so far hasn't made sense. On Wed, Apr 14, 2010 at 4:48 PM, fhucho fhu...@gmail.com wrote: Last year in October I was told by Reto Meier that expanding support for paid apps in Android Market is the top priority for the Market team. Now, six month later, I don't beleive he was telling the truth. I am really sick about this. Maybe this is a way for Google to keep the app prices low - there will be many good free apps on the market from developers who can't release a paid version. This will also keep the price of the paid apps lower (because the user might switch to competitor's app that is free). The thing I am sick even more is that they are not able to give out any other response than We're woking on it (which I find a bit hard to beleive, they're working on it for over a year with no result). When I ask a very simpe question, Will it happen in 2010 or later?, they answer with silence. I haven't found any forum about this that has some official reply from a Googler. I guess this post will be also left without an answer from anyone from Google. Why is Google so secretive about this? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en To unsubscribe, reply using remove me as the subject. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Paid apps in more countries - I am sick about it
Apologies for my spelling: I believe by the end of the year there will be enough Android users to make an Irish paid market worthwhile but its been quite clear a paid apps market in Ireland so far hasn't made sense. On Wed, Apr 14, 2010 at 5:07 PM, Donal Rafferty draf...@gmail.com wrote: Might be helpful if you state which country your in and want the paid market to come to? I'm in Ireland and to be honest Android is only starting to take off here so there was no sense in having a paid market here. I believe by the end of the year there will be enough Android users to make an Irish paid market worthwhile but its been quiet clean a paid apps market in Ireland so far hasn't made sense. On Wed, Apr 14, 2010 at 4:48 PM, fhucho fhu...@gmail.com wrote: Last year in October I was told by Reto Meier that expanding support for paid apps in Android Market is the top priority for the Market team. Now, six month later, I don't beleive he was telling the truth. I am really sick about this. Maybe this is a way for Google to keep the app prices low - there will be many good free apps on the market from developers who can't release a paid version. This will also keep the price of the paid apps lower (because the user might switch to competitor's app that is free). The thing I am sick even more is that they are not able to give out any other response than We're woking on it (which I find a bit hard to beleive, they're working on it for over a year with no result). When I ask a very simpe question, Will it happen in 2010 or later?, they answer with silence. I haven't found any forum about this that has some official reply from a Googler. I guess this post will be also left without an answer from anyone from Google. Why is Google so secretive about this? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en To unsubscribe, reply using remove me as the subject. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Service vs Singleton
The singleton wont be killed by the system automatically like a service which could lead to GC problems On Fri, Apr 9, 2010 at 1:51 PM, ailinykh ailin...@gmail.com wrote: Using a service gives you: 1. Less chance of garbage collection problems from failing to null out the singleton. This one I don't understand. What do you mean? Andrey -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en To unsubscribe, reply using remove me as the subject. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Is it possible to have 3G and Wifi connections at the same time?
Thanks, much appreciated On Fri, Mar 5, 2010 at 5:46 PM, Mark Murphy mmur...@commonsware.com wrote: Donal Rafferty wrote: Not even with the NDK? The NDK has very little formal access to Android internals and certainly cannot rewrite them. Now, with firmware changes, it is at least theoretically possible. -- Mark Murphy (a Commons Guy) http://commonsware.com | http://twitter.com/commonsguy _Beginning Android_ from Apress Now Available! -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Making sure activity is alive to receive Intent?
Thanks Sean, they are two additional methods I can look into now much appreciated On Fri, Mar 5, 2010 at 4:22 PM, Sean Hodges seanhodge...@googlemail.comwrote: There are better ways of handling this. The purpose of an Intent is to atomically request that an action is performed (and optionally retrieve the result of that action), not to continue a discussion with the activity throughout it's continued lifetime. There are a number of ways to do what you want, if both the calling and callee activities are in the same app (just a startActivity() type call), you could use shared preferences: http://www.androidcompetencycenter.com/2009/01/android-basics-managing-activity-states-part-ii/ If the activities are in different apps, you should use a content provider to handle the IPC: http://developer.android.com/intl/de/guide/topics/providers/content-providers.html Either approach will allow you to share the state data between your activities. On Fri, Mar 5, 2010 at 11:22 AM, draf...@gmail.com draf...@gmail.com wrote: I currently have an application that has code in it that starts an Activity but shortly afterwards it also sends an intent so the newly started activity knows what state to display in. So the activity starts... then code decides it should be in state one button 1 and 2 are displayed. Or The activity starts... then code decides it should be in state one button 3 and 4 are displayed. So it kind of works at the minute but sometimes my activity isn't fully started when the intent is fired so the intent fires before the receiver in the new activity is registered and the new activity stays in a blank state. Is there anyway to make sure my Activity is started and receiver registered before firing the intent? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Supress the native In Call Screen and replace with 3rd party?
Thanks James, unfortunately porting and getting Roms to customers doesn't make sense On Fri, Mar 5, 2010 at 4:12 PM, James Wang jameswangc...@gmail.com wrote: You can do nothing on this subject with sdk. I think you should go for some help on android porting. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Is it possible to have 3G and Wifi connections at the same time?
Not even with the NDK? On Fri, Mar 5, 2010 at 4:51 PM, Mark Murphy mmur...@commonsware.com wrote: draf...@gmail.com wrote: I was wondering does anyone know if its possible to open a wifi and a 3g connection at the same time on Android? No. Is there any way to control access to both Wifi and 3g/GPRS data connections and use them at the same time? No. -- Mark Murphy (a Commons Guy) http://commonsware.com | http://twitter.com/commonsguy Android Development Wiki: http://wiki.andmob.org -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: Is passing AMR_NB into AudioTrack and AudioRecord valid?
Anyone? On Wed, Feb 3, 2010 at 5:24 PM, draf...@gmail.com draf...@gmail.com wrote: I currently use AudioTrack and AudioRecord to create a looping sound program and I was using raw PCM audio but I want to use AMR_NB audio so I set up the code as follows arec = new AudioRecord(MediaRecorder.AudioSource.MIC, 11025, AudioFormat.CHANNEL_CONFIGURATION_MONO, MediaRecorder.AudioEncoder.AMR_NB, buffersize); atrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, 11025, AudioFormat.CHANNEL_CONFIGURATION_MONO, MediaRecorder.AudioEncoder.AMR_NB, buffersize, AudioTrack.MODE_STREAM); The above code works fine but is passing MediaRecorder.AudioEncoder.AMR_NB in as the Audio Format valid or is it working but actually not being encoded as AMR_NB? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Record raw Audio, process audio and save as ogg or another compressed format
Have you looked at the MediaRecorder class? As far as I know it allows some encoding and compression On Wed, Jan 27, 2010 at 5:04 PM, maecky markus.feuerst...@gmail.com wrote: Push. Does no one have any suggestions? regards Maecky On 17 Jan., 21:24, maecky markus.feuerst...@gmail.com wrote: Hi, I have searched the whole group but wasn't able to find a answer for my problem. I want to record audio from the microphone, apply some audio signal processing and than save the processed audio data in a compressed format. I figured out, how to record audio uncompressed but now I wonder if I can use some api functions to store this data in a supported compressed format. Has anyone some suggestions? Thanks for your help regards Maecky -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Loop audio from mic to earpiece?
Hi Ani, I am working on 1.5 (CupCake) and have tried to use the setRouting method, however the audio still appears to be coming out of the speaker. I also have an eclair device and the audio is coming out of the speaker on that device too. I have tried using the Audiomanager and the STREAM_VOICE_CALL also but with no luck at all. My code is posted above in case I may be using the methods the wrong way? On Mon, Jan 25, 2010 at 3:09 AM, ani anish198519851...@gmail.com wrote: Not 100% sure about the earpiece, but you specify a stream when you create the AudioTrack and I think a stream encpsulates audio routing and volume amongst possibly other things. If you set the stream to STREAM_VOICE_CALL it might come through the earpiece as this is where a call would be routed, although I guess that depends on headsets and stuff. Can anyone clarify if I am right? As for earpiece routing we can route audio to earpiece using setrouting call in the case of cupcake.In case of ECLAIR you can use various custom api's provided by android to route it to earpiece (google it).You need to set the route explicitly to get the audio out of earpiece or any other place.STREAM_VOICE_CALL will work i think but not 100% sure.Please check in case you are not getting let me know. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Cant get data from my service
Hi WoodManEXP, It turned out in the end I just hadn't binded the service properly to the activity Like this: Intent i = new Intent(); i.setClassName(team.org, team.org.WIFIService); bindService(i, this, Context.BIND_AUTO_CREATE); On Sun, Jan 24, 2010 at 10:51 PM, WoodManEXP woodman...@gmail.com wrote: Daffo0, I would like to know how you solve this because I have a similar need with a background service doing a job and the background service would like to push updates to an activity (if the activity is running). What are the preferred communication techniques between Service and Activities? You are using IRemoteInterface class. What about IBinder? Have you looked at that? On Jan 19, 12:44 pm, draf...@gmail.com draf...@gmail.com wrote: I have aservicethat is running fine and I can see the data collecting in the logcat, However after creating an aidl and trying to get the information from theserviceto my main activity I have hit a problem. I just cant seem to get the data to pass across at all, I always get a null pointer exception. Here is myserviceclass, I want to get the connectedLevel int to use in my activity class. Is it because I'm not binding properly or what am I missing but any calls to the remote interface to try and get the data ends up with a null pointer exception. My activity class code is posted underneath. Serviceclass public class WIFIService extendsService{ private static final int WIFI_NOTIFY = 0x2001; public static final String EXTRA_UPDATE_RATE = update-rate; public static final String WIFI_SERVICE = cicero.org.WIFIService.SERVICE; private WifiManager mainWifi; private BroadcastReceiver rssiListener = null; private int updateRate = -1; private int connectedLevel; @Override public void onCreate(){ super.onCreate(); mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); notifier = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); } @Override public void onStart(Intent intent, int startId){ super.onStart(intent, startId); updateRate = intent.getIntExtra(EXTRA_UPDATE_RATE, -1); if(updateRate == -1){ updateRate = 6; } rssiListener = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(WifiManager.RSSI_CHANGED_ACTION.equals(action)) { WifiInfo data = mainWifi.getConnectionInfo(); Log.d(WIFISERVICE, RSSI has changed); if(mainWifi.getConnectionInfo()!=null){ setConnectedLevel(data.getRssi()); Log.d(WIFISERVICE, new RSSI = + data.getSSID()+ + data.getRssi() + dBm); } } } }; } @Override public void onDestroy(){ if(rssiListener != null){ unregisterReceiver(rssiListener); rssiListener = null; } if(wifiChangeListener != null){ unregisterReceiver(wifiChangeListener); wifiChangeListener = null; } if(receiverWifi != null){ unregisterReceiver(receiverWifi); receiverWifi = null; } super.onDestroy(); } public void setConnectedLevel(int connectedLevel) { this.connectedLevel = connectedLevel; } @Override public IBinder onBind(Intent intent) { // we only have one, so no need to check the intent return mRemoteInterfaceBinder; } // remote interface private final IRemoteInterface.Stub mRemoteInterfaceBinder = new IRemoteInterface.Stub() { @Override public int getConnectedLevel() throws RemoteException { Log.v(interface, getConnectedLevel() called); return connectedLevel; } }; } Activity class public class TestApp extends Activity implements ServiceConnection{ IRemoteInterface mRemoteInterface = null; int connectedLevel; /** Called when the activity is first created. */
Re: [android-developers] Re: Loop audio from mic to earpiece?
Just to update you a bit this code works in 1.5 : audio_service.setSpeakerphoneOn(false); audio_service.setMode(AudioManager.MODE_IN_CALL); audio_service.setRouting(AudioManager.MODE_NORMAL, AudioManager.ROUTE_EARPIECE, AudioManager.ROUTE_ALL); However I've yet to find a solution for 1.6 + Any help would be greatly appreciated Thanks On Mon, Jan 25, 2010 at 9:19 AM, Donal Rafferty draf...@gmail.com wrote: Hi Ani, I am working on 1.5 (CupCake) and have tried to use the setRouting method, however the audio still appears to be coming out of the speaker. I also have an eclair device and the audio is coming out of the speaker on that device too. I have tried using the Audiomanager and the STREAM_VOICE_CALL also but with no luck at all. My code is posted above in case I may be using the methods the wrong way? On Mon, Jan 25, 2010 at 3:09 AM, ani anish198519851...@gmail.com wrote: Not 100% sure about the earpiece, but you specify a stream when you create the AudioTrack and I think a stream encpsulates audio routing and volume amongst possibly other things. If you set the stream to STREAM_VOICE_CALL it might come through the earpiece as this is where a call would be routed, although I guess that depends on headsets and stuff. Can anyone clarify if I am right? As for earpiece routing we can route audio to earpiece using setrouting call in the case of cupcake.In case of ECLAIR you can use various custom api's provided by android to route it to earpiece (google it).You need to set the route explicitly to get the audio out of earpiece or any other place.STREAM_VOICE_CALL will work i think but not 100% sure.Please check in case you are not getting let me know. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Loop audio from mic to earpiece?
Really sorry to keep annoying you Micheal, head just doesn't seem to be functioning properly today. I currenlty have the AudiRecord buffer set up like this: static final int bufferSize = 8; final short[] buffer = new short[bufferSize]; short[] readBuffer = new short[bufferSize]; File file = new File(Environment.getExternalStorageDirectory ().getAbsolutePath() + /record.pcm); OutputStream os = new FileOutputStream(file); BufferedOutputStream bos = new BufferedOutputStream(os); DataOutputStream dos = new DataOutputStream(bos); So that sets up to buffer to the file record.pcm and the AudioRecord.read() methos is as follows: int bufferReadResult = audioRecord.read(readBuffer, 0,bufferSize); for (int i = 0; i bufferSize; i++) buffer[i] = readBuffer[i]; for (int i = 0; i bufferReadResult; i++) dos.writeShort(buffer[i]); So it ends up reading to the file that way, so instead of the OutputStream os being set to a FileOutputStream do I set it to something else? and then add the OutputStream to a BufferedOutputStream and then that to DaraOutPutStream? Or does buffer[i] hold exactly what I need and I just need to get whats in buffer[i] to the AudioTrack? Thanks again and sorry to be so much hassle On Thu, Jan 21, 2010 at 3:19 PM, Michael nicholls...@googlemail.com wrote: Hi Donal, Once you have constructed an AudioRecord instance you can call startRecording and then you can use the various read methods to pull the PCM data out. Likewise once you have constructed an AudioTrack and called play you can use one of the write methods to push the data you got from AudioRecord into the play buffer. Mike On Jan 21, 3:12 pm, draf...@gmail.com draf...@gmail.com wrote: Hi Micheal, Thanks again, I now have it recording in PCM format from the mic and saving it to the sd card and then playing it back through the ear piece. So I just have to look into how to into piping the AudioRecord straight into the AuditTrack. So with the AudioRecord instead of creating a file to save to what should I look into doing? And with the AudioTrack, instead of looking for a file to read in what should I look into doing? Thanks, Kind Regards, Donal On Jan 21, 1:10 pm, Michael nicholls...@googlemail.com wrote: Hi Donal, Yeah if you kick the record off and the play, then you can sit in a loop reading the data out of Record and putting it into play (on a thread other than the UI thread of course). Not 100% sure about the earpiece, but you specify a stream when you create the AudioTrack and I think a stream encpsulates audio routing and volume amongst possibly other things. If you set the stream to STREAM_VOICE_CALL it might come through the earpiece as this is where a call would be routed, although I guess that depends on headsets and stuff. Can anyone clarify if I am right? Mike On Jan 21, 11:49 am, draf...@gmail.com draf...@gmail.com wrote: Hi Mike, Thanks for the prompt reply. I was looking at the AudioRecord class but had somehow missed the AudioTrack class, thanks for pointing it out. From looking at the classes I think what I have to do is read the recording data and put it straight into a streamed AudioTrack, would I be correct in saying that? And then is it possible to send it to the earpiece? Thanks again, Donal On Jan 21, 11:36 am, Michael nicholls...@googlemail.com wrote: AudioRecord and AudioTrack are the classes you need. If you use them in streaming mode then you can pipe data out of AudioRecord straight into AudioTrack and you should be able to acheive the desired effect. I have done something similar, but without the delay. Mike On Jan 21, 11:28 am, draf...@gmail.com draf...@gmail.com wrote: Hi all, I was wondering is it possible with Android to record from the mic and play the sound back out the earpiece with just a 1 second delay? I have seen the tutorials and can currently record from the mike and save a 3gp file to the sd card. However is it posssible to record and say stream the audio straight to the ear piece with just a 1 - 2 second delay? If so how would I go about doing this? Would I need to record from the mic and save it to a file and then repaly to the ear piece? and continually do this? Or would it be possible to record from the mic and stream it directly to the ear piece with just a slight delay? Any help, info or directions to tutorials would be greatly appreciated, Thanks in advance -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to
Re: [android-developers] Re: Loop audio from mic to earpiece?
Thanks Mike, Your a legend, have that working now, I owe you a pint! Many thanks, Regards, Donal On Thu, Jan 21, 2010 at 5:02 PM, Michael nicholls...@googlemail.com wrote: Hi Donal, I have pulled together some of my code to form an example. I have no idea if this code would compile, but it should be pretty close and should serve as an example to get you going. android.os.Process.setThreadPriority (android.os.Process.THREAD_PRIORITY_URGENT_AUDIO); int buffersize = AudioRecord.getMinBufferSize(11025, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT); AudioRecord arec = new AudioRecord(MediaRecorder.AudioSource.MIC, 11025, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, buffersize); AudioTrack atrack = new AudioTrack(AudioManager.STREAM_MUSIC, 11025, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, ba.size(), AudioTrack.MODE_STREAMING); atrack.setPlaybackRate(11025); byte[] buffer = new byte[buffersize]; arec.startRecording(); atrack.play(); while(isRecording) { arec.read(buffer, 0, buffersize); try { atrack.write(buffer, 0, buffer.size()); } catch (IOException e) { e.printStackTrace(); } } arec.stop(); atrack.stop(); This sets up an AudioRecord and an AudioTrack, tells the one to record and the other to play. You then have the while loop which reads the data out of the record and writes it to the play. This should reproduce the microphone audio as output for you (the code above will most likely put it out the speaker, play with the stream in the AudioTrack constructor for earpiece). You will need to run this code on a seperate thread and control the lifetime of the thread using the isRecording boolean. The first line elevates the thread to a higher priority, this may or may not be correct, so you should play with it and see. As for your delay, you may need to increase your buffer sizes to hold a few seconds worth of data and then just write the data to the AudioTrack later to create the delay. Oh and watch for feedback if the sound does come out of the speaker as it can be exponential if it's loud. You can always call: setVolumeControlStream(AudioManager.STREAM_MUSIC); from your activity and just make sure you pass the same stream as the one you pass to AudioTrack and your volume control will control the volume of that stream, enabling you to turn it down ;-) Hope that helps, Mike On Jan 21, 3:49 pm, Donal Rafferty draf...@gmail.com wrote: Really sorry to keep annoying you Micheal, head just doesn't seem to be functioning properly today. I currenlty have the AudiRecord buffer set up like this: static final int bufferSize = 8; final short[] buffer = new short[bufferSize]; short[] readBuffer = new short[bufferSize]; File file = new File(Environment.getExternalStorageDirectory ().getAbsolutePath() + /record.pcm); OutputStream os = new FileOutputStream(file); BufferedOutputStream bos = new BufferedOutputStream(os); DataOutputStream dos = new DataOutputStream(bos); So that sets up to buffer to the file record.pcm and the AudioRecord.read() methos is as follows: int bufferReadResult = audioRecord.read(readBuffer, 0,bufferSize); for (int i = 0; i bufferSize; i++) buffer[i] = readBuffer[i]; for (int i = 0; i bufferReadResult; i++) dos.writeShort(buffer[i]); So it ends up reading to the file that way, so instead of the OutputStream os being set to a FileOutputStream do I set it to something else? and then add the OutputStream to a BufferedOutputStream and then that to DaraOutPutStream? Or does buffer[i] hold exactly what I need and I just need to get whats in buffer[i] to the AudioTrack? Thanks again and sorry to be so much hassle On Thu, Jan 21, 2010 at 3:19 PM, Michael nicholls...@googlemail.com wrote: Hi Donal, Once you have constructed an AudioRecord instance you can call startRecording and then you can use the various read methods to pull the PCM data out. Likewise once you have constructed an AudioTrack and called play you can use one of the write methods to push the data you got from AudioRecord into the play buffer
Re: [android-developers] Re: Designing a UI for Board Game
You might find the Heirachy viewer some use as well, you can find in in the SDK package in the toold folder. Also in his book Android wireless application development Shane Condor describes how to draw a chessboard as well as working with bitmaps and other bits and pieces you might find useful, its by no means comprehensive but I imagine could be a good starting point. On Wed, Jan 6, 2010 at 10:54 AM, piyushn piyushn...@gmail.com wrote: you can use DroidDraw tool for gui Design . Check it out @ www.droiddraw.org . thanks;-) On Jan 5, 11:11 am, prakhy prakhyathhe...@gmail.com wrote: Hi, I need to design a board UI using android platform. i was planning to take one image as board and moving the required images over the board. How do i achieve the same? I need to find the coordinates for image and need to move the required images to specifies coordinates. Is there any andorid api for this? Prakhy -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] how to enable this permission in my app com.google.android.providers.gmail.permission.READ_GMAIL
You appear to be doing something via Googles Gdata with there gmail, how are you accessing the video files? When using gdata you are required to authenthicate, are you doing this? On Wed, Jan 6, 2010 at 2:39 PM, manoj manojkumar.m...@gmail.com wrote: Hi all, I have written a player application which plays video files (links). I tested the app on G1. It is working fine, but when I tested the app on Droid, I got the following log messages. actually I tried to launch my app when i had a video file as a attachment. My app launched but not played. here is the log I got: 1-06 15:13:40.530: ERROR/DatabaseUtils(1229): java.lang.SecurityException: Permission Denial: reading com.google.android.providers.gmail.MailProvider uri content://gmail-ls/messages/pieter.born% 40gmail.com/275/attachments/0.0/BEST/false from pid=1512, uid=10049 requires com.google.android.providers.gmail.permission.READ_GMAIL 01-06 15:13:40.530: ERROR/DatabaseUtils(1229): at android.content.ContentProvider$Transport.enforceReadPermission (ContentProvider.java:240) 01-06 15:13:40.530: ERROR/DatabaseUtils(1229): at android.content.ContentProvider$Transport.openAssetFile (ContentProvider.java:193) 01-06 15:13:40.530: ERROR/DatabaseUtils(1229): at android.content.ContentProviderNative.onTransact (ContentProviderNative.java:228) 01-06 15:13:40.530: ERROR/DatabaseUtils(1229): at android.os.Binder.execTransact(Binder.java:287) 01-06 15:13:40.530: ERROR/DatabaseUtils(1229): at dalvik.system.NativeStart.run(Native Method) 01-06 15:13:40.553: DEBUG/MediaPlayer(1512): Couldn't open file on client side, trying server side 01-06 15:13:40.553: DEBUG/ActivityManager(1165): checkComponentPermission() adjusting {pid,uid} to {1059,1013} 01-06 15:13:40.553: ERROR/DatabaseUtils(1229): Writing exception to parcel 01-06 15:13:40.553: ERROR/DatabaseUtils(1229): java.lang.SecurityException: Permission Denial: reading com.google.android.providers.gmail.MailProvider uri content://gmail-ls/messages/pieter.born% 40gmail.com/275/attachments/0.0/BEST/false from pid=1165, uid=1000 requires com.google.android.providers.gmail.permission.READ_GMAIL 01-06 15:13:40.553: ERROR/DatabaseUtils(1229): at android.content.ContentProvider$Transport.enforceReadPermission (ContentProvider.java:240) 01-06 15:13:40.553: ERROR/DatabaseUtils(1229): at android.content.ContentProvider$Transport.openFile (ContentProvider.java:186) 01-06 15:13:40.553: ERROR/DatabaseUtils(1229): at android.content.ContentProviderNative.onTransact (ContentProviderNative.java:209) 01-06 15:13:40.553: ERROR/DatabaseUtils(1229): at android.os.Binder.execTransact(Binder.java:287) 01-06 15:13:40.553: ERROR/DatabaseUtils(1229): at dalvik.system.NativeStart.run(Native Method) 01-06 15:13:40.561: DEBUG/(1059): openContentUri(content://gmail-ls/ messages/pieter.born%40gmail.com/275/attachments/0.0/BEST/false) caught exception -1 01-06 15:13:40.561: ERROR/MediaPlayerService(1059): Couldn't open fd for content://gmail-ls/messages/pieter.born% 40gmail.com/275/attachments/0.0/BEST/false 01-06 http://40gmail.com/275/attachments/0.0/BEST/false%0A01-0615:13:40.569: ERROR/MediaPlayer(1512): Unable to to create media player 01-06 15:13:40.678: WARN/VideoView(1512): Unable to open content: content://gmail-ls/messages/pieter.born% 40gmail.com/275/attachments/0.0/BEST/false 01-06 http://40gmail.com/275/attachments/0.0/BEST/false%0A01-0615:13:40.678: WARN/VideoView(1512): java.io.IOException: setDataSource failed.: status=0x8000 01-06 15:13:40.678: WARN/VideoView(1512): at android.media.MediaPlayer.setDataSource(Native Method) 01-06 15:13:40.678: WARN/VideoView(1512): at android.media.MediaPlayer.setDataSource(MediaPlayer.java:699) 01-06 15:13:40.678: WARN/VideoView(1512): at android.widget.VideoView.openVideo(VideoView.java:212) 01-06 15:13:40.678: WARN/VideoView(1512): at android.widget.VideoView.access$2000(VideoView.java:49) 01-06 15:13:40.678: WARN/VideoView(1512): at android.widget.VideoView$6.surfaceCreated(VideoView.java:459) 01-06 15:13:40.678: WARN/VideoView(1512): at android.view.SurfaceView.updateWindow(SurfaceView.java:454) 01-06 15:13:40.678: WARN/VideoView(1512): at android.view.SurfaceView.dispatchDraw(SurfaceView.java:287) 01-06 15:13:40.678: WARN/VideoView(1512): at android.view.View.draw (View.java:6539) 01-06 15:13:40.678: WARN/VideoView(1512): at android.view.SurfaceView.draw(SurfaceView.java:273) 01-06 15:13:40.678: WARN/VideoView(1512): at android.view.ViewGroup.drawChild(ViewGroup.java:1526) 01-06 15:13:40.678: WARN/VideoView(1512): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256) 01-06 15:13:40.678: WARN/VideoView(1512): at android.view.View.draw (View.java:6539) 01-06 15:13:40.678: WARN/VideoView(1512): at android.view.ViewGroup.drawChild(ViewGroup.java:1526) 01-06 15:13:40.678:
Re: [android-developers] Re: how to enable this permission in my app com.google.android.providers.gmail.permission.READ_GMAIL
I done a bit on authenticating using Google web toolkit about a year ago, it might be slightly different when doing it through Android but I'd imagine it would be fairly similiar you can read about how I authenticated with GWT on my website here - http://www.riad-donal-rafferty.com/portfolioGWT.html Be aware that this isn't the most secure way to authenticate. Also the code isn't formated on the website, you may want to copy and paste it into an editor Hope it helps On Wed, Jan 6, 2010 at 3:17 PM, manoj manojkumar.m...@gmail.com wrote: hi can you please suggest me how to authenticate? it would be helpful. Thanks, Manoj. On Jan 6, 7:47 pm, Donal Rafferty draf...@gmail.com wrote: You appear to be doing something via Googles Gdata with there gmail, how are you accessing the video files? When using gdata you are required to authenthicate, are you doing this? On Wed, Jan 6, 2010 at 2:39 PM, manoj manojkumar.m...@gmail.com wrote: Hi all, I have written a player application which plays video files (links). I tested the app on G1. It is working fine, but when I tested the app on Droid, I got the following log messages. actually I tried to launch my app when i had a video file as a attachment. My app launched but not played. here is the log I got: 1-06 15:13:40.530: ERROR/DatabaseUtils(1229): java.lang.SecurityException: Permission Denial: reading com.google.android.providers.gmail.MailProvider uri content://gmail-ls/messages/pieter.born% 40gmail.com/275/attachments/0.0/BEST/false from pid=1512, uid=10049 requires com.google.android.providers.gmail.permission.READ_GMAIL 01-06 15:13:40.530: ERROR/DatabaseUtils(1229): at android.content.ContentProvider$Transport.enforceReadPermission (ContentProvider.java:240) 01-06 15:13:40.530: ERROR/DatabaseUtils(1229): at android.content.ContentProvider$Transport.openAssetFile (ContentProvider.java:193) 01-06 15:13:40.530: ERROR/DatabaseUtils(1229): at android.content.ContentProviderNative.onTransact (ContentProviderNative.java:228) 01-06 15:13:40.530: ERROR/DatabaseUtils(1229): at android.os.Binder.execTransact(Binder.java:287) 01-06 15:13:40.530: ERROR/DatabaseUtils(1229): at dalvik.system.NativeStart.run(Native Method) 01-06 15:13:40.553: DEBUG/MediaPlayer(1512): Couldn't open file on client side, trying server side 01-06 15:13:40.553: DEBUG/ActivityManager(1165): checkComponentPermission() adjusting {pid,uid} to {1059,1013} 01-06 15:13:40.553: ERROR/DatabaseUtils(1229): Writing exception to parcel 01-06 15:13:40.553: ERROR/DatabaseUtils(1229): java.lang.SecurityException: Permission Denial: reading com.google.android.providers.gmail.MailProvider uri content://gmail-ls/messages/pieter.born% 40gmail.com/275/attachments/0.0/BEST/false from pid=1165, uid=1000 requires com.google.android.providers.gmail.permission.READ_GMAIL 01-06 15:13:40.553: ERROR/DatabaseUtils(1229): at android.content.ContentProvider$Transport.enforceReadPermission (ContentProvider.java:240) 01-06 15:13:40.553: ERROR/DatabaseUtils(1229): at android.content.ContentProvider$Transport.openFile (ContentProvider.java:186) 01-06 15:13:40.553: ERROR/DatabaseUtils(1229): at android.content.ContentProviderNative.onTransact (ContentProviderNative.java:209) 01-06 15:13:40.553: ERROR/DatabaseUtils(1229): at android.os.Binder.execTransact(Binder.java:287) 01-06 15:13:40.553: ERROR/DatabaseUtils(1229): at dalvik.system.NativeStart.run(Native Method) 01-06 15:13:40.561: DEBUG/(1059): openContentUri(content://gmail-ls/ messages/pieter.born%40gmail.com/275/attachments/0.0/BEST/false) caught exception -1 01-06 15:13:40.561: ERROR/MediaPlayerService(1059): Couldn't open fd for content://gmail-ls/messages/pieter.born% 40gmail.com/275/attachments/0.0/BEST/false 01-06 http://40gmail.com/275/attachments/0.0/BEST/false%0A01-0615:13:40.569: ERROR/MediaPlayer(1512): Unable to to create media player 01-06 15:13:40.678: WARN/VideoView(1512): Unable to open content: content://gmail-ls/messages/pieter.born% 40gmail.com/275/attachments/0.0/BEST/false 01-06 http://40gmail.com/275/attachments/0.0/BEST/false%0A01-0615:13:40.678: WARN/VideoView(1512): java.io.IOException: setDataSource failed.: status=0x8000 01-06 15:13:40.678: WARN/VideoView(1512): at android.media.MediaPlayer.setDataSource(Native Method) 01-06 15:13:40.678: WARN/VideoView(1512): at android.media.MediaPlayer.setDataSource(MediaPlayer.java:699) 01-06 15:13:40.678: WARN/VideoView(1512): at android.widget.VideoView.openVideo(VideoView.java:212) 01-06 15:13:40.678: WARN/VideoView(1512): at android.widget.VideoView.access$2000(VideoView.java:49) 01-06 15:13:40.678: WARN/VideoView(1512): at android.widget.VideoView$6.surfaceCreated(VideoView.java
Re: [android-developers] Send Manual Broadcast
I presume you have any bluetooth permisiions required in the manifest? On Wed, Dec 23, 2009 at 9:41 AM, rezar rraw...@gmail.com wrote: I created an intend which manually calls BT broadcast receiver as follows: Intent manualIntent = new Intent(); manualIntent.setAction (android.bluetooth.BluetoothDevice.ACTION_FOUND); sendBroadcast(manualIntent); But in Runtime I got the following Exception: ERROR/AndroidRuntime(4054): Caused by: java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.bluetooth.device.action.FOUND from pid=4054, uid=10050 I did not found any appropriate permission to enable me send Broadcast. Does any body have the same problem here ? I am working on a Droid phone. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: Cant find my content provider?
Anybody got any ideas? I thought I had it figured out with the database but that didn't work. It seems that either my naming of the CONTENT_URI or something to do with that is wrong or else a database/table for the settings never actually gets created? if theres no data there for the content provider would I get that error? Or is it actually something to do with the CONTENT_URI? On Mon, Dec 21, 2009 at 3:56 PM, draf...@gmail.com draf...@gmail.comwrote: Hi, I have written the following content provider, but when I try to pull information from it into an array, I get the following error: 12-21 15:14:18.627: ERROR/ActivityThread(1160): Failed to find provider info for cicero.org.provider.CiceroContentProvider I presume its something to do with my naming of the CONTENT_URI or something? I'm not quite sure how it works so could anyone explain a bit and spot what I have done wrong? This is what I have in the manifest: XML: provider android:name=.CiceroContentProvider android:authorities=cicero.org.provider.CiceroContentProvider / Java: public class CiceroContentProvider extends ContentProvider{ //URI public static final Uri CONTENT_URI = Uri.parse(content:// cicero.org.provider.CiceroContentProvider); //Underlying database private SQLiteDatabase settingsDB; private static final String TAG = CiceroProvider; private static final String DATABASE_NAME = cicero_settings.db; private static final int DATABASE_VERSION = 1; private static final String SETTINGS_TABLE = settings; //Column names public final static String _ID = _id; public final static String VOIPUSERNAME = voipusername; public final static String VOIPAUTHID = voipauthid; public final static String PASSWORD = password; public final static String SIPPROXYSERVER = sipproxyserver; public final static String SIPREGISTRAR = sipregistrar; public final static String SIPREALM = siprealm; public final static Integer EXPIRESTIME =30; //column indexes public static final int VOIPUSERNAME_COL = 1; public static final int VOIPAUTHID_COL = 2; public static final int PASSWORD_COL = 3; public static final int SIPPROXYSERVER_COL = 4; public static final int SIPREGISTRAR_COL = 5; public static final int SIPREALM_COL = 6; public static final int EXPIRESTIME_COL = 7; //helper class private static class settingsDatabaseHelper extends SQLiteOpenHelper{ private static final String CREATE_SETTINGS_TABLE = CREATE TABLE tbl_settings( + _ID INTEGER PRIMARY KEY AUTOINCREMENT, + VOIPUSERNAME TEXT, + VOIPAUTHID TEXT, + PASSWORD TEXT, + SIPPROXYSERVER TEXT, + SIPREGISTRAR TEXT, + SIPREALM TEXT, + EXPIRESTIME INTEGER);; public settingsDatabaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_SETTINGS_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, Upgrading database from version + oldVersion + to + newVersion + , which will destroy all old data); db.execSQL(DROP TABLE IF EXISTS + SETTINGS_TABLE); onCreate(db); } } //end helper class private static final int SETTINGS = 1; private static final int SETTINGS_ID = 2; private static final UriMatcher uriMatcher; static{ uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); uriMatcher.addURI (cicero.org.provider.CiceroContentProvider, settings, SETTINGS); uriMatcher.addURI (cicero.org.provider.CiceroContentProvider, settings/#, SETTINGS_ID); } @Override public String getType(Uri uri) { switch(uriMatcher.match(uri)){ case SETTINGS: return vnd.android.cursor.dir/ vnd.org.CiceroContentProvider; case SETTINGS_ID: return vnd.android.cursor.item/ vnd.org.CiceroContentProvider; default: throw new IllegalArgumentException(Unsupported URI: + uri); } } @Override public boolean onCreate() { Context context = getContext(); settingsDatabaseHelper dbHelper; dbHelper = new settingsDatabaseHelper(context, DATABASE_NAME, null, DATABASE_VERSION); SQLiteDatabase settingsDB = dbHelper.getWritableDatabase(); return (settingsDB == null) ? false : true; } @Override public Cursor query(Uri uri, String[] projection, String
[android-developers] Re: Cant find my content provider?
For anyone that comes across this type of error. In my infinite graduate wisdom I had the content provider info outside the application brackets in the xml manifest file! Wasted a whole day cos of that! [?] On Tue, Dec 22, 2009 at 9:56 AM, Donal Rafferty draf...@gmail.com wrote: Anybody got any ideas? I thought I had it figured out with the database but that didn't work. It seems that either my naming of the CONTENT_URI or something to do with that is wrong or else a database/table for the settings never actually gets created? if theres no data there for the content provider would I get that error? Or is it actually something to do with the CONTENT_URI? On Mon, Dec 21, 2009 at 3:56 PM, draf...@gmail.com draf...@gmail.comwrote: Hi, I have written the following content provider, but when I try to pull information from it into an array, I get the following error: 12-21 15:14:18.627: ERROR/ActivityThread(1160): Failed to find provider info for cicero.org.provider.CiceroContentProvider I presume its something to do with my naming of the CONTENT_URI or something? I'm not quite sure how it works so could anyone explain a bit and spot what I have done wrong? This is what I have in the manifest: XML: provider android:name=.CiceroContentProvider android:authorities=cicero.org.provider.CiceroContentProvider / Java: public class CiceroContentProvider extends ContentProvider{ //URI public static final Uri CONTENT_URI = Uri.parse(content:// cicero.org.provider.CiceroContentProvider); //Underlying database private SQLiteDatabase settingsDB; private static final String TAG = CiceroProvider; private static final String DATABASE_NAME = cicero_settings.db; private static final int DATABASE_VERSION = 1; private static final String SETTINGS_TABLE = settings; //Column names public final static String _ID = _id; public final static String VOIPUSERNAME = voipusername; public final static String VOIPAUTHID = voipauthid; public final static String PASSWORD = password; public final static String SIPPROXYSERVER = sipproxyserver; public final static String SIPREGISTRAR = sipregistrar; public final static String SIPREALM = siprealm; public final static Integer EXPIRESTIME =30; //column indexes public static final int VOIPUSERNAME_COL = 1; public static final int VOIPAUTHID_COL = 2; public static final int PASSWORD_COL = 3; public static final int SIPPROXYSERVER_COL = 4; public static final int SIPREGISTRAR_COL = 5; public static final int SIPREALM_COL = 6; public static final int EXPIRESTIME_COL = 7; //helper class private static class settingsDatabaseHelper extends SQLiteOpenHelper{ private static final String CREATE_SETTINGS_TABLE = CREATE TABLE tbl_settings( + _ID INTEGER PRIMARY KEY AUTOINCREMENT, + VOIPUSERNAME TEXT, + VOIPAUTHID TEXT, + PASSWORD TEXT, + SIPPROXYSERVER TEXT, + SIPREGISTRAR TEXT, + SIPREALM TEXT, + EXPIRESTIME INTEGER);; public settingsDatabaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_SETTINGS_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, Upgrading database from version + oldVersion + to + newVersion + , which will destroy all old data); db.execSQL(DROP TABLE IF EXISTS + SETTINGS_TABLE); onCreate(db); } } //end helper class private static final int SETTINGS = 1; private static final int SETTINGS_ID = 2; private static final UriMatcher uriMatcher; static{ uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); uriMatcher.addURI (cicero.org.provider.CiceroContentProvider, settings, SETTINGS); uriMatcher.addURI (cicero.org.provider.CiceroContentProvider, settings/#, SETTINGS_ID); } @Override public String getType(Uri uri) { switch(uriMatcher.match(uri)){ case SETTINGS: return vnd.android.cursor.dir/ vnd.org.CiceroContentProvider; case SETTINGS_ID: return vnd.android.cursor.item/ vnd.org.CiceroContentProvider; default: throw new IllegalArgumentException(Unsupported URI: + uri); } } @Override public boolean onCreate() { Context context = getContext(); settingsDatabaseHelper dbHelper
Re: [android-developers] Re: Adding, Editing, Deleting entries in Androids call log
Hi Kumar, The idea is to show calls made over wi fi or 3G from another application in the Call Log as if they were made over GSM. You reckon looking at the source will be the only way? Thanks, Donal On Wed, Dec 16, 2009 at 10:33 AM, Kumar Bibek coomar@gmail.com wrote: Hi Donal, This is as good as hacking. I guess, adding a new call log should not be possible. However, deleting them should be possible by using the Content Provider. You need to re-read the documentations, or may be look at the source codes. Kumar Bibek http://tech-droid.blogspot.com On Dec 15, 5:57 pm, Donal Rafferty draf...@gmail.com wrote: Here is the code I have import android.app.Activity; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.CallLog; import android.util.Log; import android.widget.SimpleCursorAdapter; public class test extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Uri myCall = ContentUris.withAppendedId(CallLog.Calls.CONTENT_URI, 0); Cursor cur = managedQuery(myCall, null, null, null, null); String[] projection = new String[] { CallLog.Calls.CACHED_NAME, CallLog.Calls.CACHED_NUMBER_LABEL, CallLog.Calls.DURATION }; Uri myCalls = CallLog.Calls.CONTENT_URI; Cursor managedCursor = managedQuery(myCalls, projection, // Which columns to return null, // Which rows to return (all rows) null, // Selection arguments (none) // Put the results in ascending order by name CallLog.Calls.DATE + ASC); this.addToCallLog(); this.getColumnData(managedCursor); } private void getColumnData(Cursor cur){ if (cur.moveToFirst()) { String name; String phoneNumber; String duration; int nameColumn = cur.getColumnIndex(CallLog.Calls.CACHED_NAME); int phoneColumn = cur.getColumnIndex(CallLog.Calls.CACHED_NUMBER_LABEL); int durationColumn = cur.getColumnIndex(CallLog.Calls.DURATION); String imagePath; do { // Get the field values name = cur.getString(nameColumn); phoneNumber = cur.getString(phoneColumn); duration = cur.getString(durationColumn); //Log.i(NAMES ! = , name); // Log.i(Number ! = , phoneNumber); Log.i(duration ! = , duration); } while (cur.moveToNext()); } } private void addToCallLog(){ ContentValues values = new ContentValues(); // Add Abraham Lincoln to Calls List; values.put(CallLog.Calls.CACHED_NAME, Abraham Lincoln2); //values.put(CallLog.Calls.CACHED_NUMBER_LABEL, 0863497543); values.put(CallLog.Calls.DURATION, 102); Uri uri = getContentResolver().insert(CallLog.Calls.CONTENT_URI, values); } } This works in that the logcat shows that its adding the duration, however problems include: Not getting the phonenumber, this gives a uncaughtexception error And the emulator crashes the Call Log app thats already on the device when it is used after my app has run On Tue, Dec 15, 2009 at 12:22 PM, draf...@gmail.com draf...@gmail.com wrote: Hi, I have been looking at Androids call log content provider and have managed to pull the data from it and display it in my own app. However I want to be able to write to the call log, is there anyway of doing this? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Adding, Editing, Deleting entries in Androids call log
I have come across this in the source ublic static Uri addCall(CallerInfo ci, Context context, String number, int presentation, int callType, long start, int duration) { final ContentResolver resolver = context.getContentResolver(); // If this is a private number then set the number to Private, otherwise check // if the number field is empty and set the number to Unavailable if (presentation == Connection.PRESENTATION_RESTRICTED) { number = CallerInfo.PRIVATE_NUMBER; if (ci != null) ci.name = ; } else if (presentation == Connection.PRESENTATION_PAYPHONE) { number = CallerInfo.PAYPHONE_NUMBER; if (ci != null) ci.name = ; } else if (TextUtils.isEmpty(number) || presentation == Connection.PRESENTATION_UNKNOWN) { number = CallerInfo.UNKNOWN_NUMBER; if (ci != null) ci.name = ; } ContentValues values = new ContentValues(5); values.put(NUMBER, number); values.put(TYPE, Integer.valueOf(callType)); values.put(DATE, Long.valueOf(start)); values.put(DURATION, Long.valueOf(duration)); values.put(NEW, Integer.valueOf(1)); if (ci != null) { values.put(CACHED_NAME, ci.name); values.put(CACHED_NUMBER_TYPE, ci.numberType); values.put(CACHED_NUMBER_LABEL, ci.numberLabel); } if ((ci != null) (ci.person_id 0)) { ContactsContract.Contacts.markAsContacted(resolver, ci.person_id); } Uri result = resolver.insert(CONTENT_URI, values); removeExpiredEntries(context); return result; } Could I use this in some way and how do I go about it? Thanks, Donal On Wed, Dec 16, 2009 at 11:02 AM, Donal Rafferty draf...@gmail.com wrote: Hi Kumar, The idea is to show calls made over wi fi or 3G from another application in the Call Log as if they were made over GSM. You reckon looking at the source will be the only way? Thanks, Donal On Wed, Dec 16, 2009 at 10:33 AM, Kumar Bibek coomar@gmail.comwrote: Hi Donal, This is as good as hacking. I guess, adding a new call log should not be possible. However, deleting them should be possible by using the Content Provider. You need to re-read the documentations, or may be look at the source codes. Kumar Bibek http://tech-droid.blogspot.com On Dec 15, 5:57 pm, Donal Rafferty draf...@gmail.com wrote: Here is the code I have import android.app.Activity; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.CallLog; import android.util.Log; import android.widget.SimpleCursorAdapter; public class test extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Uri myCall = ContentUris.withAppendedId(CallLog.Calls.CONTENT_URI, 0); Cursor cur = managedQuery(myCall, null, null, null, null); String[] projection = new String[] { CallLog.Calls.CACHED_NAME, CallLog.Calls.CACHED_NUMBER_LABEL, CallLog.Calls.DURATION }; Uri myCalls = CallLog.Calls.CONTENT_URI; Cursor managedCursor = managedQuery(myCalls, projection, // Which columns to return null, // Which rows to return (all rows) null, // Selection arguments (none) // Put the results in ascending order by name CallLog.Calls.DATE + ASC); this.addToCallLog(); this.getColumnData(managedCursor); } private void getColumnData(Cursor cur){ if (cur.moveToFirst()) { String name; String phoneNumber; String duration; int nameColumn = cur.getColumnIndex(CallLog.Calls.CACHED_NAME); int phoneColumn = cur.getColumnIndex(CallLog.Calls.CACHED_NUMBER_LABEL); int durationColumn = cur.getColumnIndex(CallLog.Calls.DURATION); String imagePath; do { // Get the field values name = cur.getString(nameColumn); phoneNumber = cur.getString(phoneColumn); duration = cur.getString(durationColumn); //Log.i(NAMES ! = , name); // Log.i(Number ! = , phoneNumber
[android-developers] Re: Adding, Editing, Deleting entries in Androids call log
Here is the code I have import android.app.Activity; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.CallLog; import android.util.Log; import android.widget.SimpleCursorAdapter; public class test extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Uri myCall = ContentUris.withAppendedId(CallLog.Calls.CONTENT_URI, 0); Cursor cur = managedQuery(myCall, null, null, null, null); String[] projection = new String[] { CallLog.Calls.CACHED_NAME, CallLog.Calls.CACHED_NUMBER_LABEL, CallLog.Calls.DURATION }; Uri myCalls = CallLog.Calls.CONTENT_URI; Cursor managedCursor = managedQuery(myCalls, projection, // Which columns to return null, // Which rows to return (all rows) null, // Selection arguments (none) // Put the results in ascending order by name CallLog.Calls.DATE + ASC); this.addToCallLog(); this.getColumnData(managedCursor); } private void getColumnData(Cursor cur){ if (cur.moveToFirst()) { String name; String phoneNumber; String duration; int nameColumn = cur.getColumnIndex(CallLog.Calls.CACHED_NAME); int phoneColumn = cur.getColumnIndex(CallLog.Calls.CACHED_NUMBER_LABEL); int durationColumn = cur.getColumnIndex(CallLog.Calls.DURATION); String imagePath; do { // Get the field values name = cur.getString(nameColumn); phoneNumber = cur.getString(phoneColumn); duration = cur.getString(durationColumn); //Log.i(NAMES ! = , name); // Log.i(Number ! = , phoneNumber); Log.i(duration ! = , duration); } while (cur.moveToNext()); } } private void addToCallLog(){ ContentValues values = new ContentValues(); // Add Abraham Lincoln to Calls List; values.put(CallLog.Calls.CACHED_NAME, Abraham Lincoln2); //values.put(CallLog.Calls.CACHED_NUMBER_LABEL, 0863497543); values.put(CallLog.Calls.DURATION, 102); Uri uri = getContentResolver().insert(CallLog.Calls.CONTENT_URI, values); } } This works in that the logcat shows that its adding the duration, however problems include: Not getting the phonenumber, this gives a uncaughtexception error And the emulator crashes the Call Log app thats already on the device when it is used after my app has run On Tue, Dec 15, 2009 at 12:22 PM, draf...@gmail.com draf...@gmail.comwrote: Hi, I have been looking at Androids call log content provider and have managed to pull the data from it and display it in my own app. However I want to be able to write to the call log, is there anyway of doing this? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en