text:
Why does the new Chrome update want the permission to use my camera and audio recording?
Seriously, it specifically states that it can use the camera and audio recording any time it wants, whether or not I wish it to. Why is Chrome on Android requesting those permissions?
Should I be concerned?

(Emphasis my own.)

Compared to all the other stuff Google already knows about you, it is like being concerned about a particular lava current while being inside a volcano. But, if I were you, I would just root my phone and install something like Permissions Denied or Pdroid.

That doesn't sounds like a good question for a stackexchange site. If you don't trust the company/software then don't use it. There are plenty of good and open source alternative browsers for Android. Otherwise you just have to trust that they don't mess around with their permissions. I think that Chrome is requesting the A/V permissions because  of recent changes regarding Chrome and webRTC.

@Flow: OK, thought you were editing for style. Feel free to revert to yours.

I thought the edit message was pretty clear :(

Hah, like I read edit messages. :)

The lesson here is: Good developers include information about why their app is requesting the permissions it is.

The Chrome page in the app store says this about the new permissions:

This version requests two new permissions, Camera and Modify Audio Settings, to support WebRTC, an experimental feature under development.

WebRTC itself is designed to expose your camera and mic to the browser, so that web-apps can implement video-conferencing and other multimedia solutions in-browser.
The WebRTC people have at least nominally considered the privacy implications, by adding an info-bar to Chrome:

Chrome on Windows is said to have access to your camera and mic. So if you use Chrome on Windows (and soon Firefox too) then you are implicitly trusting the vendor of those programs to not take pictures of you when you don't authorize it. The same is true for Android. One hopes that they don't introduce security flaws that allow unauthorized access to the camera/mic by malicious websites.
As to what you can do about it, on a rooted phone you can uninstall Chrome or install a permissions-control app that denies permissions to installed apps. You can switch to a different browser that doesn't support WebRTC. Otherwise you're stuck with what Android provides. If you decide that you trust Microsoft or Apple more than Google, you can switch. Or maybe you trust an open-source Android variant like Cyanogenmod. For myself I consider the fact that Google already has a bunch of apps on my phone which have access to my camera and mic, so if Google wanted to spy on me they already can. Heck, they could build that right into the OS and just not tell anyone.
Google Apps that can access the camera/mic:

Search
Voice Search
Plus
Translate
Drive
Shopper
Goggles
Youtube Remote
Youtube

Not to mention the camera app which is built-in to the phone.
Edit: The question was updated with a screenshot of what the phone shows when you are prompted to update the app. Unfortunately at this time there doesn't seem to be a way for app developers to document why they need particular permissions, except in external sources. For example, this Chrome update states why it needs the permission in the "What's New" page. However, if you don't look there and just see the scary warning, you are left wondering what is going on. As an app developer I wish we could add help text to the permissions page to explain to the user why we need the permissions and how the privacy policy protects the user. Google could certainly make this more usable and less scary.

I don't really count the stock camera as a "Google app" since it is included in the AOSP and I can verify (by looking at its source) that it isn't doing anything malicious, unlike the rest of these google apps. Anywhoo thanks for the great answer =).

@Tim you're assuming that the stock camera app's AOSP code corresponds to what is shipped. It might be the case for Nexus devices, I suppose. Actually other phones are known to have modified camera apps and if they're spying on you it's probably for Samsung, Sony, et al. :)

right but at that point then it is also no longer a Google App, because it is Sony app, or Samsung app.

Great answer. I don't know why Android apps can't be a bit more dynamic in their permissions... WebRTC appears to be an extra (optional) feature that not everyone will use. Why can't permissions be requested at the time that extra feature is first activated, with perhaps just an advisory notice when the app is installed that more permissions are required in order to make full use of the app? I'm not an app developer, but I guess "it doesn't work like that"...?

@w3d: Agreed. The question is, why are permissions forced upon you: why aren't we allowed to grant or deny permissions as we see fit? The logic "take it or leave it" is severely flawed. That's what 19th-century factories said to their workers. An ethical company, and organisations founded to protect consumers, are supposed to act against this.

@Mr.ShinyandNew安宇 One thing is missing from your otherwise OK answer: in all practicality, the problem is not so much that Google will spy on your, but rather that the browser is far more vulnerable to outside abuse than the other applications! Websites abuse vulnerabilities of browsers all the time. The camera application does not access tons of external websites on the Internet. Nor do any of those other applications. No, this is truly bad. Luckily, the risk can be lowered by just not using Chrome. The stock browser is better anyway, since it has Quick Controls and Flash.

@Cerberus: Slight snag, on later Nexus devices Chrome is the stock browser.

@w3d: Right, well, but we still indicate the old browser as "the stock browser" for lack of a better name, don't we? Even if it does not come pre-installed on the Nexus 4 any more. At any rate, you can still use a different browser and make it the default for everything.

@Cerberus I did mention that I hoped that they didn't introduce any security flaws in the browser. Anyway I'm fairly sure that they will make the user interface fire webrtc similar to the one for web geo location, where the browser requests permission before activating the camera. It shouldn't be too hard.

@Mr.ShinyandNew: I suppose that would be the best solution in the current situation...still, the user should be able to set permission per application. Make it an advanced, secret, rooted function if you're so scared of ignorant users doing it by mistake (there is really no excuse for not including it, none at all).

The idea about permissions on Android is that they can be distributed between different Manifests (apk's), which then can communicate between each other via IPC (Intents/Binder/...). Every apk can provide a given functionally with the permission(s) it has been granted. The user is then free to install a component of the app or not, which comes down to accepting a certain permission and getting the features the permission makes possible. But this approach is not very common with app developers.

@flow I wonder how well putting the web rtc functionality into a separate app would work for chrome. Sure, in principle apps can cooperate to share data but this typically involves leaving one shop to invoke the other. So, for example, if chrome just wants to allow photo uploads it can defer to the camera app via an intent. But to do in-page video conferencing using JavaScript? I doubt that would work.

Android has a very efficient mechanism, called Binder, for IPC. But you are right, Intents are not suitable for such a job.

+1 for the description about webRTC. I just want to add about permissions (Dev POV) is that they are to help the users, not the developers. Devs would love dynamic permissions. But it'll open many security loopholes. Static permission tells user that what access the app can ever have in it's lifetime, unless it gets updated with new permissions. So I'd extremely oppose any dynamic permission feature.


text:
How can I reliably screen or block callers on a number-by-number basis?
Last night I got a telemarketing call on my Verizon Droid X. I was horrified, to say the least. I absolutely do NOT want telemarketers wasting my time and minutes with their B.S.
I looked into screening blocking calls through Verizon, but it seems Verizon only lets you block a total of FIVE numbers. I think this is unacceptable.
I went to the app store and there are a number of such applications available. From reviews and comments it's really hard to choose.
Is there a way to solve this problem? An app? A procedure? Something within the phone itself?
I'm using the soak release of Gingerbread, 2.3.3. I don't care about price. I just want something that is fast and effective.

Not an answer, but are you on the Do Not Call list? I hear it's effective in the US, as opposed to Canada where telemarketers use it as a phonebook.

I don't use an app.
What I do is have a "Spammer" record in my Contacts. Whenever I receive a telemarketing call, I add that phone number to the Spammer contact.
I give out my Google Voice number exclusively. Within GV I have that contact blocked, so any calls from one of those numbers receives the "ding-ding-ding This number is not in service" message.
In those rare cases where the call is to my actual cell phone number, it quite obviously displays "Spammer" on the screen and I simply slide to ignore the call.

That's pretty clever.

How about for SMS?

I don't do much SMS so can't really speak to that. GV blocks those, too.

This was my approach, but instead of using my Google Voice number to dump the calls, I just checked the "All calls to voicemail" for the contact (I have this option on ICS - not sure if earlier versions have it).  Occasionally, a call will still slip through without immediately going to voicemail, but I can still see the caller is "Phone Spam" and ignore it.

If you are in the US, I would highly recommend getting a Google Voice number. Anytime a form asks for your phone number, give it your Google Voice number instead of your real phone number. This way you can screen calls or block calls inside of Google Voice, along with other benefits such as transcribing your voicemails and unlimited texting.

Does this prevent callers who dial your cell # from a brute-force call center (i.e. dialing all possible number combinations one by one, incrementing digits)?

@Robusto: No. Do place your phone number on the do-not-call registry, though.

If you use google voice as your voicemail provider, you can make it screen your calls by number.  You make a contact for the # then under the settings for that contact you turn on call screening options.

I would recommend two apps. Call Blocker, which works really fine and blocks calls as well as inconvenient text messages, and Tasker -- a very powerful tool that does a lot of things besides blocking undesired calls.

Root Call Blocker seems to fit the bill perfectly.  As the name implies though, it requires the handset to be rooted.  I use it personally and so far it's been doing its job well.
There are plenty of alternatives on the Market for you to try.

Thank you. I checked it out, but couldn't tell from the information whether it will work on Droid X (Gingerbread).

I would try contacting the developer and asking if it's compatible with your handset and OS version: http://fahrbotmobile.blogspot.com/

A new app in the Play Store: WhoAreYou

Completely FREE Visual Caller ID, Call Blocker, and Text Blocker.
  Know exactly who is calling or texting you - even when they’re not in your address book. WhoAreYou is a completely FREE visual Caller ID, Call Blocker, and Text Blocker.

See a name, visual picture, city and state on almost every call and text.
Use it as a call filter and call blocker to effortlessly block calls from telemarketers, spammers, and ex’s from ringing your phone.
Also use it as a text filter and text blocker to get rid of those unwanted, annoying text messages. Block SMS / TXT messages with ease!
Reverse lookup any number in the US or Canada

Lifehacker review

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Android stopped informing me about app permissions. Why?
Since I upgraded to Marshmallow (Verizon LG-G4), I never get the little dialog that asks me to approve new permissions for applications I'm installing/updating, nor even the "no new permissions needed" notice.
Is this a Marshmallow issue? Did I accidentally do something to turn those off? If so, how do I turn them back on? I can't find any settings that govern this.

Marshmallow comes with a new feature that asks for app permissions when opening the app. It has the new apple-esque asking for permissions feature. You can choose if an app can use these permissions or not.
If you want to change the permissions later, go to settings and search "Permissions"
If the app requires no permissions, it will not inform you of that.
However, if it requested access to something, it will tell you.
For example, if I just installed Skype and started using the microphone, it will ask if the app can use the microphone. You can decline it or accept it.

When I downloaded SpanishDict it didn't mention permissions on download or on opening.

@Robusto Hmm, that's funny. Maybe LG took it out or its not Marshmallow optimized. Also try going into settings and look for permissions, even if it's not M optimized, you can still change it there

@Robusto without a link to the app it's hard to say, but the app could a) not request any permissions or b) only request permissions Google says are "normal" and "undenyable" (such as Internet so they can make money via AdMob ;)

Here is the app's home page. But it happens with other apps as well.

@Robusto Just checked the app permissions (I'm still on lollipop :P) and it requires no permissions.

@lolreppeatlol: Then shouldn't it say that?

No, not until you do something that makes it access something. For example, if I just installed Snapchat and started using the camera, Android would ask me "Allow Snapchat to access your Camera?" @Robusto

@Robusto There, it's edited ;)

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Nokia 7.1 / Android 9 can't connect to specific local IP
My setup

Raspberry Pi running Pi-Hole on static IP 192.168.0.2
TP-Link Archer C7 router

IP - 192.168.0.1
2.4GHz and 5GHz bands using same SSID
DHCP setup

Default gateway - 192.168.0.1
DHCP range 192.168.0.100 - 192.168.0.199
DNS - 192.168.0.2
Subnet mask 255.255.255.0

Wireless AP isolation is disabled

I got a new Nokia 7.1 running Android 9. It connects to the wifi just fine (receives an IP like 192.168.0.103, DNS settings are set correctly) and can access the internet as well as certain local IPs such as the router admin page and other devices connected to the network, for example a Synology Diskstation.
I noticed I was getting ads on some web pages so tried to access the pi-hole dashboard to check things out. When I tried to access http://192.168.0.200/admin, I receive

This site can't be reached
http://192.168.0.2/admin is unreachable
ERR_ADDRESS_UNREACHABLE

so that explains why I was getting ads but I cannot for the life of me work out why the phone cannot access this one specific local IP address.
My laptop which is on the same wifi network can access the pi-hole dashboard without issue.
This is my first Android 9 device so I might be missing a specific networking setting. Previously I had a Nougat phone that did not show any problems like this.

Update
Noticed the WiFi on the phone was constantly switching between 2.4GHz and 5GHz. Changed the router to use different SSIDs for each band which seemed to work well for a day but it's back to not connecting now.

Another update
Noticed whenever I'm having trouble with LAN connections, there's a TV.b wifi network which appears to be my Chromecast which means it too does not have a connection so this is looking more like an issue with the router.

Did you check Private DNS settings introduced in Pie? It's DNS over TLS (DoT) which uses port 853 instead of 53. I suppose 192.168.0.200 is listening on port 53. Did you try to ping (ICMP/TCP/UDP) 192.168.0.200 from Nokia phone or tried to access listening port(s) with nmap?

@IrfanLatif Private DNS is on "Automatic" but DNS shouldn't prevent me from hitting a direct local IP. 192.168.0.200 operates DNS on port 53 but also runs a web dashboard on port 80. Not sure how to ping from the phone

You can use ping, traceroute, namp from adb shell or terminal emulator app like Termux.

Make sure the subnet mask you get via DHCP is 255.255.255.0 (not limited to the DHCP IP range).

That is the subnet mask, sorry forgot to include that in the question

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Will the Samsung Galaxy Tab 4 Nook receive updates past 4.4.2?
I can't find official information from either Barnes and Noble or Samsung one way or the other. It doesn't look like it uses TouchWiz like other Samsung devices, so it would likely be more effort to develop and test for future Android versions. I think that if it is going to receive updates, it's at a really good price point for a tablet, with the Barnes and Noble sales and promotions happening now. If not, I'm not sure if it's worth the cheaper price to be stuck on 4.4.2 forever - it seems like that will be behind the times rather quickly. Are my fears of that well-founded?

Sadly the only answer is "I don't know." I have spoken to Samsung reps before and their official line is that "Samsung do not comment on future Android updates. While this may not be the answer you were hoping for, it is the only one at present." If they won't tell us then anything else is speculation, even if SamMobile or others have leaked videos, sometimes those never progress past beta.

related: When will my device get the Android 4.4 update (KitKat)? & When will my device get the Android 5.0 update (Lollipop)?


text:
How can I disconnect a phone from Google's data backup service?
Right now, I have two phones - my now-old Galaxy Nexus and my new Galaxy S5. I want to keep my Galaxy Nexus around as a Chromecast controller and (via wi-fi) streaming media device. As such, I want to remove apps that aren't useful to me for this purpose without affecting my Google backups that helped me set up my S5 quickly. However, when I go to uncheck the "Back up my data" option on the Backup & reset menu, it says that disabling it will delete all my data from Google's servers. I don't want this, since my S5 should continue to use this service.
Is the fact that I have an S5 with this setting enabled sufficient to prevent my backup data from being wiped from Google's servers? If not, how I can unlink my Galaxy Nexus from this service? Or, alternatively, do I need to? The only thing that I'm trying to avoid is unnecessary syncing of apps and settings to a device that I want relatively free of apps.
In the event that I'm running on some false assumptions, I want the apps and settings on the S5 to be the ones restored on a new phone or following a reset. I effectively want the apps and settings on the GNex to be ignored as far as other devices are concerned.

You don't need to do anything. Every device using Google Backup with the same Google account keeps its own separate set of data. When you sign into your Google account for the first time after a factory-reset, the device will look through all the backup sets and try to pick the most recent one from the same device. It'll restore from that set of data, and use that to create a new backup set.
Only if you sign in on a completely new device that you haven't used before (not even before a factory-reset) will it choose a set from a different device: in that case, the most recently backed-up set.
So, you can leave your Galaxy Nexus backing up to its own set, and your Galaxy S5 backing up to its own set. If you factory-reset one of them, it'll restore the apps and data from the same device.
For a much more complete explanation of how Google Backup keeps track of different sets of backed-up data, see my answer to Google Backup: Multiple devices using the same account - what happens on Restore?

In order to ensure that the GNex is never the most recently backed up phone (should I break my S5 and need a new S5 or a totally different phone), should I totally disable the backup (since it only has a few apps for music, videos, and other streaming type stuff? Or is there a way to make sure that the S5 is always the most recent backup that I would restore a new phone from?

The linked answer explains how to force a backup when you want to, and how to do a full-system restore from a backup set of your choosing.

You should "Root" your Nexus to gain superuser privileges, that way you can delete all unnecessary apps and data that doesn't correspond with its new uses as a mobile streaming media device. http://lifehacker.com/5886876/how-to-root-the-samsung-galaxy-nexus If you are unsure what an app does, before you delete it you can google the app name and find out its function. It would be better to save the app or file to your computer instead of deletion in case you need it its easily retrievable.


text:
Factory reset (Software repair) Sony Xperia XCompact (and all other Xperia smartphones) that have software issues like a boot loop
I'd like to share how you can reset your Xperia even if it doesn't boot (start) anymore! It not only helps to break a boot loop, it also helps to unlock the phone if you forgot your smartphone lock credentials. Of course, your data on the phone will be erased.
I will answer my question right away which is allowed by stack exchange rules (at least it used to be)

Sony has gotten really good with their software suppport for their Xperia line up. Their software actually works to get bricked phones alive again.
The method I describe below doesn't require an unlocked bootloader and doesn't unlock it as well. Which is a good thing since you keep your warranty and you won't loose DRM rights that are for example used for the noise reduction software of your Xperia camera.

Your phone should be charged at least 80%.
Keep your smartphone turned off and disconnected until I say so! Otherwise it won't work.
Get the Xperia Companion: https://support.sonymobile.com/de/xperia-companion/

Now you can connect your smartphone to your computer while pressing volume down:

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
I can't receive SMS when I have low storage
From the time the "low storage" warning appears no synchronization is done at all, including receiving SMS.
Can I do anything about it? Can I "force" my Motorola Milestone Froyo to receive SMS somehow?
This is really annoying. Especially because the user doesn't informed in detail. I missed a lot of SMS... I hope that gets fixed in Froyo.

Did not get fixed in froyo. ;(

Same question asked 1 year later http://android.stackexchange.com/questions/12275/how-to-stop-rejecting-messages-at-low-memory

Google says, they fixed it in Android 2.3. http://code.google.com/p/android/issues/detail?id=4991#c257

http://code.google.com/p/android/issues/detail?id=4991
This is bug. You must always make sure you have free space in Android, otherwise the bug might happened.

Thank you! While looking over the 400+ user comments at your link (and the linked issues there) I see I am not alone ;)

SMS, etc. are stored on internal storage.  If it's getting full, then you'll have to uninstall some apps to free up space to receive more messages.  Not much else you can do about this.
My suggestion, however, is that you use an app like SMS Backup+ to backup your old SMS messages to a label in gmail.  Then you can delete old threads which will free up space AND you'll still have a copy of all of your messages.

Well, first of all I am not willing to seek the fault at the user. I know that this could have been developed way better. Motorola bound the SMS receiving process to the sync manager which is blocked when memory is low. That's the(ir) fault. SMS don't take much space and won't harm the system! Backing up SMS doesn't help, because the freed space is too tiny for the sync manager to recognize. That reminds me of times where only 10 SMS could be saved on a SIM.

I agree that more complete notification would be nice, but ultimately this seems 100% reasonable behavior to me. Your phone has some idea of how much space it needs to handle phone calls and otherwise function properly. If your phone doesn't think it has sufficient space to keep downloading data and still function properly, it should stop downloading new data.

If you don't mind losing older messages, most default messaging apps have an option somewhere in their settings (you'll have to look around depending on your device - I don't have a Milestone) and somewhere the should be a tickbox "Delete old messages" - tick that and set the limits and the phone will delete older messages, freeing up space (on the internal memory, as Bryan said) meaning you can receive more messages.
If you do need all your old messages, see Bryan's way

See my comment to Bryans answer. Deleting old SMS frees only very little space. The sync manager won't recognize it. It doesn't follow the basic logic of old fashioned phones, where you have a fixed and reserved storage for SMS. Thats why your suggested option doesn't have much impact ;(

Plz also see that date/time settings. Correct date and time of the instrument is very important for all correspondence related to messages

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/2.5/


text:
How to enable non-3G data
After I got my mighty Fly-Ying FG8 I didn't care for mobile data, mostly due to the measly 5MB data plan with extortionate overage charges. I miss the occasional emails on the road, Waze navigation and A-GPS so I thought to put these 5MB to good use.
The problem is that in the Settings => Mobile networkד I have only "data roaming", "Access Point Names" and "Network Operators" on both SIMs. I couldn't make the device use its EDGE capability. Does anyone know how to turn it on?

I'm confused. Do you have a non-3G data plan? If not why wouldn't you want to use the fster 3G?  Modern phones/networks only default to EDGE when there is no 3G connection.  It's not managed separately.

The phone doesn't support 3G. It's true, the question and the answer were "how to enable data" rather than "how to enable EDGE"

Ah, OK. Glad you figured it out :)

Appereantly, you have to define an "Access Point Name" in order for your mobile data to work.
in Settings => Wireless & networks => Mobile networks => Access Point Names => menu => New APN
The settings vary by operator, you can find the Israeli ones here.


text:
Is there a way to save profiles on Motorola's Droid X?
When I had an HTC Eris I could change "profiles".  Each profile was basically:  wallpaper + screen lock image + all apps on your desktop.  So, I could have a work profile that had my apps that were geared for while I was at work, a social profile to switch my phone to having FB, Twitter, etc on my desktop with a different wallpaper, etc.
Is there an app for that?  ;)

Note: This looks like it is popping up as a feature in Gingerbread

What you're referring to are called HTC Scenes (Hero Scenes link).  Off the top of my head I don't know of anything like that and only HTC devices have the HTC Scenes.
I just did a quick search of the market and didn't come up with anything so my initial guess is:
No, there is nothing like that currently. You would either need a Sense-based custom ROM (not sure if there are any for the Droid X) or an HTC device.

well....  shoot!


text:
Can a device pretend to be a USB keyboard?
What I'm looking for:
Is there a way to make the device claim to be a keyboard/HID when plugged into a USB port and "type in" the contents of the clipboard? More accurately; What would it take to make it happen?
Motivating use case:
I have a password keeper program on my phone but it's annoying to have to read the password off the device and try to type it into another computer.
Background:
I have an Android device that was built before MTP was supported for transferring file but, with recent upgrades, now supports it. Based on this, the USB class that it claims to be can't be hardware defined and must be defined in software.
IIRC, this project has Android devices (with what I think is a stock kernel) talking as some USB class that was definitively not built in. This indicate to me that you might be able to control what USB classes it support without kernel work but I don't know for sure.
As for the Host side (i.e. the PC), I've never seen a PC, Mac or Linux box need special drives for keyboards, even for some rather esoteric devices that claim to be keyboards (bar-code scanners, credit card and smart card readers, etc.) so the generic drivers should be good enough for what I'm wanting.
All that argues that what I'm looking for can be done from a hardware point of view, but says very little about what software support exists and nothing about if there is an app for it.

You might try using KeePass (KeePassDroid on android, keepassx on linux, etc.) on both your phone and your computer, and just sync the database file between them, or access the database file on the phone via USB from the computer. Other password managers may also have "real computer" counterparts.

@TREE: That might work for some cases, but one of the the specific target usages is where I don't have the ability to install something on the PC (either no access or a chicken/egg problem like system log-in passwords).

there is also a portable version of KeePass that can run from a USB stick. This might work from a mounted android USB Storage device, but certainly doesn't address all possible use cases.

Yes. This is definitely possible, requiring no modifications or drivers on the PC. As the OP mentions, the USB identification on the phone end is ultimately done in software (in this file https://github.com/android/kernel_msm/blob/android-msm-2.6.35/drivers/usb/gadget/composite.c), and it could be modified to identify itself as a standard USB keyboard.
This change would require a couple of things.

A modified kernel with a patched USB driver
An Android app that could talk to some interface exposed by the modified USB driver.

There is a paper that was published in 2010 titled Exploiting smart-phone USB connectivity for fun and profit. It describes using a phone to brute-force desktop login screens. The method they used involved making the phone appear as a USB keyboard.

https://github.com/pelya/android-keyboard-gadget
It has been implemented here.. and the required android app is also available

This doesn't exactly answer your question, but it might help in your use case.
Maybe you want to have a look at InputStick. It'll be a USB thumb drive that you pair to Android via Bluetooth. Plugged into a computer it emulates a generic USB HID to send keyboard strokes. An advanced Java API will also allow to specify i.e. device descriptors to emulate non-standard functions. It could provide a nice example that it's defined in software rather than hardware.
For reference, the developer also is working on example programs, such as a  Demo Password Manager.

Have you tried Unified Remote. This is a great tool to use phone as keyboard and mouse. It doesn't use USB but wifi instead. There is an app on phone and computer that work together. Works great for me. Also if you get full version you get integration with many common applications.

I'm looking for a solution for cases that include things like typing passwords into BIOS boot prompts so I can't really install any kind of client.

I was searching for something similar and found https://github.com/pelya/android-keyboard-gadget. Seems the same thing can be used in your case.
In brief, what I got is you have to write the USB driver in the Android kernel to detect the device as HID.

It's now >six
years later and
somewhere in between someone created the Keepass2 USB Keyboard
Plugin for Keepass2Android.
Wanted to add this
information here for the sake of completeness and because I found
this question unanswered and the aforementioned plugin while
searching for exactly something like that.
I haven't tested it myself yet...

At a minimum, this would require both software on the phone and on the PC. The 2 pieces of software would have to communicate with each other. Nothing like this, that I know of currently, exists.
And for the PC to think that the device is truly a keyboard, it would require a new driver that would tell the PC that the device is a keyboard, and how "to use it as a keyboard".
I am not saying that it is not possible, because just about anything is possible when it comes to things like this. What I am saying though, is that nothing like this exists, currently.
USB is both hardware and software, if it was software alone, then the same USB driver would work for all android devices on Windows, and this is not the case. USB mass-storage and MTP are handled by the drivers on the PC, not the device. What devices support both MTP and USB mass-storage and at the same time? I have found articles stating that devices can support UMS and MTP, but only support UMS if there is an external sdcard. You cannot mount the external sdcard with MTP and with UMS. MTP is for the internal storage. And I haven't read anything that can confirm or deny that you can use both at the same time.
You don't have to install drivers for keyboards, if they follow the "default" spec because windows already has the drivers for it. There are keyboards that come with their own drivers. As I said, it would be possible. I am not sure about how it would be done. It would, almost certainly, require a custom kernel at the very least for it to act like a keyboard and no additional drivers to be needed on the PC side.
Additionally, I agree with @davidbb that it is possible and I have already said that it is. The problem with a question asking if something is possible, does not ever solve the problem. It would be like me saying "is it possible for me to run ios applications natively on windows?". This is theoretically possible, but there is nothing that does this now and there is not something that a "normal user" (or even   an advanced user) can do to make this happen. This site is geared for users, so saying you just need to write a modified kernel is not an answer that is going to benefit anyone. So the real answer to the question is no, because there is not a modified kernel out there.

IIRC, the android end of the USB connection is done in software (it has to be to some extent for the same hardware to act as both a USB mass-storage device as well as MTP). Based on that, what is to prevent a device side only driver from make the device announce it's self as a generic HID? If that can be done, then the same PC side drivers that handle any other keyboard will handle it (just like is done for things like bar-code scanners and credit card readers).

Android devices (hardware) that were built before MTP was being used now operate as the MTP USB class, thus the classes that the device claims to operate as must be defined in software. I can't remember if I have ever installed a driver for a keyboard (or for that matter a non-generic driver for connecting an Android device) thus nothing should need to be installed PC side. Combine those and I'm almost sure that the hardware can do it. The only question left is: does stock Android provide access to the needed knobs, or would this take building a custom kernel?

Re: 2nd edit. I guess I'm looking for someone who knows definitively what it would take. (Can you move that last paragraph to the top?)

This answer is wrong, no software is required on the PC side.  Different phones require different drivers because the manufacturers don't all use the same vendor ID number.  Keyboards however fall in a different category of device where they are recognized by the host by type, so the vendor ID doesn't really matter.  The VID/PID, device type, protocols, etc are all implemented in software on the android side, and changeable by anyone with kernel source and a way to install the compiled result.


text:
What can cause a Droid Incredible to stop connecting to a PC via USB?
When I connect my phone to my laptop via USB, it is able to charge, but I am not able to mount it as a drive. Neither my computer nor my phone recognize that there is a device plugged in. This happened within the past few days, and I don't think that I changed anything on either side.
I already checked the settings and USB debugging is on, USB debugging notify is on, and Stay awake is on in the Development settings menu. I also tried rebooting both devices to see if that would fix it, but it hasn't.
My phone is a Droid Incredible running CM7.0.3. My laptop is running Windows 7.

Try changing usb cable. Bad cables can cause this (at least I had this problem once, which went away simply by using another cable).

Unfortunately, I only own the one cable. I'll borrow a friend's cable later and check. I hope it's this simple.

This turned out to be it. However, I had to try about 3 USB cables before I found out. Annoying...

It's also possible that you've damaged some of the pins on the device's micro USB connector. If connecting it to another computer with another cable doesn't works I could recommend you to contact your dealer for repair :)

That's a good call, too. However, I tried multiple combinations of cords and computers. It's definitely my cord either not supporting data or being damaged.

It could also be that Windows 7 or the BIOS disabled that USB port...possibly due to something power related.  Have you switched the USB port you're plugged into? Possibly try switching to another USB port.

As another possibility (although you mention that you did not change anything on the PC): I had a similar problem once when I still had my PALM desktop software (and synchronization software) installed on my PC.
After a log of searching I found out that the PALM sync software used the COMM4 port on my PC.
For some reason, the USB connection between my Galaxy S and my Windows 7 PC used the same port.
Once I uninstalled the PALM software, the USB connection worked flawlessly.
Maybe more technical people at this forum can explain why, but that's what I found out.


text:
How do I enable push notifications for Facebook for Android?
I'm currently running the latest stable release of CM7 for the HTC Droid Incredible and Facebook for Android 1.6.4 (released on 20 August). According to Facebook, push notifications are enabled for devices that support them. Since I get push notifications from other applications (such as Google+), I know my device supports them.
I've read about various problems with them, but I haven't found any definitive solutions (or a definitive lack of a solution). I would assume the setting for push notifications would be in the application's Settings menu. I have a number of options for various times to pull notifications down, but I don't see an option for push notifications in the app or on the Facebook website.
Is this just a broken application or am I missing something?

Funnily enough, as I just noted here I believe that the app is just buggy and unreliable.  There's no reason for the individual device to determine whether the application can do something like push notifications.  Android's cloud to device messaging requires 2.2 or higher, and the Facebook post notes that that's what they require as well, so I assume that's what they're using. C2DM works perfectly fine for other apps so the only reasonable explanation is that the Facebook app doesn't work properly.
The app was updated recently and does work better for many users, though, so make sure you have the latest version.
There are no settings related to push messages in the app or in the Accounts and Sync settings.  Regular sync is every 3 hours at most, which seems infrequent to me — my BlackBerry allows updates every half hour.

I'm going to update the question, but I'm running the latest version of Facebook for Android (1.6.4, from 20 August). The refresh interval option has settings for 30 minutes, 1 hour, 2 hours, 3 hours, and never. It's currently set for 1 hour, but push would be best.

@Thomas Ah, your refresh interval options must be a CM thing.  Lucky :P

I find that interesting that the ROM would have an impact on how frequently an application can refresh itself. If it can control that, can the ROM also control if an app can or can't use push notifications?

@Thomas Turns out I'm an idiot. I'm back at home where I left my phone and the current version does have the refresh interval options you mention, and I have it set to every 30 minutes.  My "Social networking sync interval" in Settings -> Accounts and sync still shows 3 hours and shows up under the Facebook account, though, so I don't know what's going on there.  Either way I would still blame the app rather than your ROM.

Well, since everything that I've ever been able to find confirms this, I think I'll accept this answer in the near future. I'm just going to wait a bit (until tomorrow morning) to see if anyone has anything, but it looks like it's the app's/Facebook's fault. Thanks.


text:
How can I set a custom ringtone for a contact when using Google Voice?
I use Google Voice for all incoming calls. When someone calls me, their contact information (picture, phone number, name) shows up on the screen. However, the ringtone that is used is not the custom ringtone assigned to that contact, but the default ringtone. What can I do?
My phone numbers are currently stores as ########## with no leading 1. I'm not sure if this matters.

I would first test by adding a 1 to a number and having them call you.  Android should be smart enough to treat them identically but Google Voice might not play nicely.
I'm not sure of the specifics of how GVoice works, but keep in mind that your contacts are calling Google and Google is calling you.  Somehow they pass on your contact's number, but it's spoofed, and your phone is probably relying on the "real" number (i.e. Google's number) for choosing the ringtone.

This appears to be working. I just added a 1 and things look good.

Great, glad it was something simple.

Do you have Google Voice itself set to pass through the phone number of the caller or do you have it set to show the Google Voice number?  If you currently have it set to show your Google Voice number instead of the callers number then change that setting.
Let me know if that is the case.  If you already have that set then we can delve deeper.
The setting in question is in the web version of Google Voice under Settings - Calls - Caller ID (incoming).

It's set to show the caller's number.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/2.5/


text:
What does it mean if my HTC Incredible's notification light flashes between green and amber?
I was driving today and my phone was in its holder. At the time, I was using it for GPS and Pandora, and it was plugged in using my car charger. At one point, the notification LED began to flash in what looked like a regular pattern (but since I was driving, I can't be 100% sure), alternating between green and amber. I've never seen this before, and I had no notifications. What does it mean?

Was it flashing at an irregular rate? Its status could have been alternating between Full Battery and Charging.

I'll edit the question, but it was flashing in what appeared to be a regular pattern. I was driving, so I couldn't stare at it for a long period of time to confirm.

I believe it means the battery is overheating.

Is there some way to check/confirm this?

I haven’t been able to find any official documentation on this but there are various reports that describe the same symptoms and causes. For example: http://forum.androidcentral.com/htc-hero/6742-led-alternates-green-then-orange-what-does-mean.html and http://forum.androidcentral.com/htc-evo-4g/41858-led-blinks-orange-green-means-your-batter-has-overheated.html

Although there's no official documentation, the discussion forums seem to back this up. Unfortunately, I have no desire to test this out myself...until someone can find concrete reasons why this might not be the reason, I'm going to accept this answer.


text:
Podcast Player and Bluetooth?
I've been using Google Listen for podcast catching and playing. Seems to work just fine. I'd like to be able to play my podcasts over my Bluetooth headset. Alas, it seems that is only an option for A2DP bluetooth headsets(?) so I'm on a quest.
Can anyone offer suggestions? Seems like I have two options (but maybe there are others).

Find a podcast catcher/player that will play over a non-A2DP headset
Find a way to "fake" the Android into using a bluetooth headset even when not A2DP

Anyone have any thoughts or suggestions?
[edit]
I should mention that I'm running stock 2.1 and have no real desire to root/mod the phone.

Try Super BT Mono.  It doesn't explicity say that it works for non-AD2P headsets but I believe that's the whole point of the app.  There'd be no need for this app with a headset that has AD2P.
Edit: Whoops, that's for Froyo only and you are on Eclair.
Basically you need to find an app that will stream audio over the HSP profile instead of AD2P but I couldn't find one for you.  You have 3 options as I see them:

Get Android 2.2 on your phone and Try Super BT Mono Froyo Pro
Root your phone, load CyanogenMod and try Super BT Mono Pro
Buy a headset that supports AD2P (they can be as cheap as $30)

Sorry I couldn't help more.

Looks intriguing. The description starts with "***Only work with cyanogenmod customed ROM or Nexus one." This leads me to believe it won't work for me(?)

You're looking at a different app than I linked to.  There's 4 different versions of Super BT Mono.  The one I linked to is "Super BT Mono Froyo Pro" and that one looks like its a more updated, better supported version.

This version just doesn't show up in "my version" of the market. Would the carrier block it?!? I've tried searching market and also tried via the QR code at appbrain.com. Not Found.

Sorry, that was a silly mistake on my part.  The title of the app is "Super BT Mono Froyo Pro" which I should probably have guessed is only compatible with Froyo and you are on Eclair.  That's why the market is blocking it.

Oh bummer. Sad day.

Thanks for the Edit. I'm hoping for Froyo someday, but haven't heard anything about Sprint's plan to update the Intercept.

Got Froyo update today from Sprint! Hope to revisit this soon...


text:
Bricked my TF300T: How to re-partition internal storage to get it back?
I upgraded to Katkiss's Android 5.0 image. It was nice but in reading I saw I could use the F2FS file system to prevent slowdown from normal usage. So I went to format /data thinking that would give me the F2FS option (instructions were not very clear). The /data format never finished so eventually I restarted. Now it won't boot, which I expected and would just reflash my install zips, but now TWRP recovery cannot mount any directories at all.
TWRP recovery will get into a boot loop but fastboot works so I reflashed TWRP recovery and then recovery works fine. But I can't reset/wipe/mount/etc. anything from within recovery as I just get errors:
E:Unable to mount '/data'
E:Block device not present, cannot wipe Data.
E:Unable to mount '/data'
E:Unable to format to remove encryption.
E:Unable to mount '/system'
E:Unable to mount '/cache'
E:Unable to mount '/data'
E:Unable to mount storage.

I tried starting ADB sideload. It says using RAM for sideload storage and that it's starting but never starts up. ADB devices list no devices.
Anyone out there have a similar issue? Is there a way to re-partition, maybe using fastboot?
If it would just mount I think I'd just need to format and install the zip files?

I thought I could use my nandroid backup to flash system.img, etc. to overwrite what's there but it's one big .win file. So I looked up the fastboot commands anyways and stumbled on an xda thread about un-bricking TF300s where they used fastboot erase on every mount point then fastboot flashed the stock firmware blob file from Asus' support website. Ran perfectly and now I have my tablet back! So all you need is fastboot to go completely back to stock.
To get to fastboot:

Shutdown the tablet completely.
Hold the Volume Down button and the Power button at the same time.
Let go when you see multiple lines of text at the top left and RCK Android Wipe as options.

You are now in fastboot.
To connect using a windows PC:

Install Minimal ADB and Fastboot: http://forum.xda-developers.com/showthread.php?p=42407269#post42407269
Install Asus Sync from Asus support website (to get the drivers).
Open the Minimal ADB and Fastboot shortcut to open the command prompt.
Connect tablet to the PC's USB.
The PC should start installing the drivers.
In the command prompt type: fastboot devices
You should see a bunch of letters and numbers then the word fastboot. You're connected to the tablet now.

In the command window the following commands will erase EVERYTHING from the tablet. I was already unable to use the tablet at this point so I had nothing to lose really.

fastboot erase system
fastboot erase recovery
fastboot erase userdata
fastboot erase boot
fastboot erase misc
fastboot erase cache
fastboot -i 0x0B05 flash system c:\adb\TF300t\blob (this is my path -
  your's may vary depending where you stored your blob) ((also this was
  the first time i saw the loading bar while flashing)*
fastboot -i 0x0B05 reboot

http://forum.xda-developers.com/showthread.php?t=2179874&page=19
At this point, for me, the tablet was now completely back to 100% stock like it was just purchased.


text:
My Galaxy S4 shows a black screen with clock. What is this?
It looks like this:

I can't unlock or do anything with it. My Android version is 4.4.4 running CyanogenMod

Something similar has been happening to me actually, randomly my phone will have a screen similar to this one for a few seconds before going back to my normal screen. I've been trying to find out what it is but still can't come to a conclusion. Does any one have any ideas on what could be the cause? I haven't had my phone near any magnets also. Thank you!

This is the S-View cover mode. That's a cover with a piece of glass in it. Are you holding magnets by your phone? If there is no way to get out of it, you should restart your phone, or you can hold a magnet near your phone like the red dot:

Hope my answer helps!

This might be the case! It happened to me very randomly, and I usually put my phone in my pocket with lots of other stuffs. So are you saying that I could get out of this mode by again holding a piece of magnet by my phone?

I thinks so yes. There may be a Manet somewhere in your pocket. Hold the magnet something like the red dot in this photo: http://imgur.com/TgPJxqc

This is exactly what I was looking for!


text:
Moving contacts and messages from Windows Phone 8.1 to Android
I currently have a Nokia Lumia 520 running Windows Phone 8.1. I am migrating to an LG G3. How would I move my contacts and messages (texts) from one phone to another?

You could just save them to the SIM card, that should work.
Tap the menu icon, and a button should be labelled 'back up contacts'. Tqp that, and then tap 'SIM card'. It should save all your contacts to the SIM card. Then just put it in you new phone, head to contacts, tap the menu button, qnd press 'restore' and choose 'SIM card'. Then, choose the save point of your choice (to phone, SIM, or an added email)
Text messages are a bit more troubling, I'll look into it.
-EDIT-
I have found a similar request here from a while back, on the windows phone stack exchange. It will contain all you need. From there. Move the sdcard to your android phone, and install this app here (assuming you have one, use PC otherwise) and just navigate to the sdcard (keep using the up a directory button, or up button in the app until you see either sdcard if your default storage is called emulated, or extsdcard if it is called sdcard) and choose the file to restore. It can do contacts, messages, and more.

Can you provide instructions on how Gaurav would accomplish that?

I have only just logged back on, sorry. I'll add the info now.

a. You (should be able to) export your contacts from your Windows Phone to a .csv file and import that into your Google account Contacts which can be accessed here: https://contacts.google.com
b. Another way of doing the above is presented here: https://windowsphone.stackexchange.com/questions/1660/i-have-saved-a-csv-file-from-my-old-phone-now-i-want-to-import-those-contacts-i

a. Once you import them into your Google account, then register your new Android device with your Google account and all your contacts should sync as well.
b. If however, you wish to avoid registering the Android phone with your Google account, then move the .csv file you saved earlier (from your Windows Phone) on to the storage of the Android phone and select the import option from the default Contacts application.

I'm sorry I could not be more precise as I don't own a Windows Phone and the options for Contacts applications on Android changes according to manufacturers.

Options for exporting and importing contacts files (.csv) should be present in the menus of the respective Contacts/People applications.


text:
How to turn off mobile-data/3G for each SIM card separately in Samsung Galaxy Mega Duos?
I'm using Samsung Galaxy Mega Duos and use two SIM cards - one sim with very low charge for 3G connection (called SIM1) and the other with very-high fee (called SIM2).
I go to Setting - Connections - Data usage to turn off 3G on SIM2 but the checkbox Mobile data seems to be synced between the two e.g. if I check it on SIM1 and then go to SIM1 to turn it off, SIM2 is turned off too!?
My question: How can I turn of 3G for SIM2 but keep it for SIM1?

i think you are looking in wrong area.is there any settings like sim management in setting? i think you can turn off from there

Yeah you are right. Going there get it done. Thank you!

I had the same issue. Found this solution on another site:

Open "Settings" App
Go to "SIM Card Manager"
Tap on "Data Service Network"
Choose the SIM as the Data SIM

Note that only the first SIM slot supports 3G Internet. So if you want to use 3G you must plug your 3G SIM in the first slot.

Would be lovely if you would give us some URL to refer to what you sate in #4 item i.e. only 1st SIM slot supports 3G

This is not the answer. Select SIM 1 as you describe, then take out SIM 1 --> SIM 2 will be selected.

With regard to "Note that only the first SIM slot supports 3G Internet. So if you want to use 3G you must plug your 3G SIM in the first slot."
In
Settings --> More Networks --> Mobile networks
You can set the "Network mode" for both SIMs separately, but only one card can be set to fast internet (WCDMA) at a time. This can be especially bothersome if you are in Korea, where parts of the country only have WCDMA and no GSM.
Please also note that mobile data is switched on automatically if you select a SIM card as explained in the first answer. You can then switch it off and on in the "sliding" config menue -- it seems to remember the setting you have made.
JCS.

I couldn't find the settings mentioned in other answers (OnePlus with Android 7) so I made an dummy APN setting.
Add a new APN:

Settings > SIM & Network > Sim 2 > Access Point Names > (+)

Now you can add the APN details. Set APN to a dummy domain, e.g. dummy.invalid and hit save. Make sure it's saved and showing as selected on the "APNs" screen.
Note 1: I haven't yet verified this technique as that SIM doesn't currently have credit. Hopefully someone else can verify this.
Note 2: ".invalid" domain is reserved for this purpose. It means your phone won't be trying to connect to a real server.


text:
Is there a way to format numbers' font in Nexus One/Nexus S?
I love to see numbers in Georgia font and would love to see them auto-formatted into that font! If you know such tips, please share!
Update
I want just numbers to be formatted while other texts remain as-is.

Android stores its fonts at /system/fonts/ using TTF (TrueType) format. If you have a program that can edit TTF files (e.g. FontForge), you can replace the number fonts in these .ttf files with your preferred number fonts to change the glyph used for numbers globally. If you're rooted, you should be able to replace these font files with your own modified version.
Note that I have never tried this, note as well that some applications' layout may rely on the system fonts being of a particular size or shape, and this modifications may break the layout in those applications.


text:
How to show chat head facebook android manually?
The new version of Facebook Messenger show a chat head when new messages arrived.
When closed, I don't know how to show the chat head unless waiting for the next message to come

So you want a permanent notification icon so that you can just open the chat app from your notification bar? Or are you asking for something else?

An icon or shortcut to open the chat head is what I look for

I use Messenger, and yes, chat heads do show, what I do is, type in to chat, then back out and finish, it is up to them to reply back, and when they do, their chat head re-appears with a new message, in short, that would be the behaviour of Messenger itself, doubt if you can force the chat head to be on permanently all the time...

@t0mm13b Why would you doubt that :) ? I just want to positively chat to my friend using the chat head and need to open it! I like to chat with being-float app like that without living my current app

Open messenger then click on the chat head you wanna open. Click i for info. Click 3 dot on the upper right corner then click "open chat head".

A free app called Notification Shortcuts gives you the ability to set up a permanent notification that will open an app you specify when you select the notification.
You can set up multiple shortcuts and can even set up toggles for wifi, bluetooth, etc, if you want.
The downside to this is that when you receive a message, you'll have a second notification from the chat app itself. But since the facebook chat app lacks an option to set up a permanent notification, this 3rd-party app is the next best solution.

They have updated their Facebook app now. Please see my answer.

With the new update to Facebook app now, the chat head is opened whenever I start my chat with a friend.
Note that if we want to use the old way of chatting via Facebook, we would use the Facebook Messenger app.

Open messenger then click on the chat head you wanna create shortcut for. Click i for info. Click 3 dot on the upper right corner then click "Create shortcut". This will create shortcut on your home screen, that will open chathead for this conversation.


text:
How to get Picasa/Google+ shared photo's URL quickly from Android mobile device?
My sister doesn't use Google+ so it is quite hard for me to share an individual photo of my Picasa album with her.
Currently I can only do that from a PC - opening picasa web album site, open the album, select the need-to-share image, then get the shared link from the box on the right.
I cannot quickly do this from my Google Samsung Nexus phone since the mobile version of Picasa web does not have get shared link like the PC version.
How can I get shared/embedded link of that photo the quickest way?


text:
Set wallpaper and lock screen's background as two different photos?
Current when I choose a photo to be set as wallpaper, my lock screen's background is automatically changed to be this new one.
I want the lockscreen to keep its old background, how can I do that?
ps.
I'm using Google Samsung Galaxy Nexus.

What version of Android are you using? Android 4.0.4 and above should let you change both separatelly.

My Android version is 4.1.1

Indeed I have googled and see other users can have the option to set so but on my phone, I cannot find that

Although I am on another device with another android version (HTC Desire HD / ROM: JellyTime R9, Android 4.2.2) I think the problem may be the same.
In the Gallery app I can only set the images as background. But I can set a different lock screen background image in system settings. I think this option depends on the specific Launcher/Lockscreen you use and are also valid in stock roms. I am using NovaLauncher and I can only set a different lockscreen image that way as far as I know.
Look in Settings → UI → Lock screen → Background → Custom image (maybe different wording — I only have the German version here).

This is what you need to do, supposing you're on a stock ROM:

Open your Gallery app.
Select the image you want to set as background.
Hit Menu and you should see an option Set as, click on it.
You should end with several options in which you can find Home screen, Lock screen and Home and lock screens.
Select the option you want to set your wallpaper to.

If you have a custom ROM, you should check the forums of that ROM to see if its supports this.

Sorry Peter, on my phone, after selecting the image in Gallery, I only have options: 1-set as wallpaper, 2-set as contact. No option for lock screen indeed.

Do you have a stock ROM or are you using a custom ROM (Cyanogenmod for example)?

I use the original phone without making anything changed related to the ROM as you call it

I had  a bit of trouble setting the lock screen pic. I have a Samsung Galaxy Ace Q i827 (Appeal in the U.S.) & I had to first find a pic I wanted, then I had to hit the menu button a couple of times to find the 'set as' button. At first I only hit it once, & no 'save as' button appeared. But after hitting it again, it popped up. After clicking on the 'set as', I had the option of selecting the lock screen or wallpaper.  This is for gingerbread 2.3.6.

You can't do that. But what you can do is download a third party locker such as GO Locker.

On Android 4.1.1 you can set a different wallpaper without 3rd party apps.

How would GoLocker help me?


text:
Help for `fat finger` on Google Galaxy Nexus
I often have trouble with the on-screen keyboard, e.g. pressing the wrong keys etc.
I looked around and found that ThickButton looks like a good solution; but sadly it is not compatible with my Galaxy Nexus.
What can I do to get rid of mistyping keys?

There are any number of alternative keyboards in the Play Store. What have you tried?

What I tried is the link I put in the word here that you have corrected for me

I think when editing, please make sure your correction is better in grammar and meaning. You changed mine a lot hic

Not that much, but I did try to make it a question about a problem you're trying to solve instead of just trying to find an app. Edit back anything that I may have gotten wrong.

If all you've tried is the app you linked to, then my suggestion is: check out the Play Store and try out some of the other keyboards that are available.

Hacker's Keyboard allows you to customize the size of the keyboard up to 3/4s of the screen.  Their suggestions dictionary is also pretty good at deciphering typos.
Alternatively, mash the keyboard with your palm and obtain a special typing wand.  ;)

I have tried Hacker's Keyboard as your suggestion but the keyboard UI is not very need to me and ... I don't like it. Thanks anyway!

If you can get the APK of Thumbnail, you can try to sideload it on your Galaxy Nexus.
You can try Swiftkey Keyboard, it works well for me as I have fat fingers too.


text:
How to know if an keyboard/input related app is safe to use
I am Vietnamese and I cannot type my language on my Android phone i.e. Samsung Galaxy S4
So I look for apps that help me to input Vietnamese. My issue is that I'm affraid the apps will bug me and know everything sensitive that I type.
How can I know if one such app is safe to use?
p.s. I add a sample of such apps as below - Laban Key; with the required permission(s)

The new way Playstore lists permissions on install and update make it difficult at best to see what an app requests permissions for. While before that change, one saw at least those (but still didn't know what the app would do with them), now even that possibility is gone for good – except if you want to go to the website all the time to check manually.
The rant aside: As Thanh already pointed out, a keyboard app by definition has access to everything you type (or would be useless otherwise), so there's pretty much no way from this approach. The only thing you could check for is one that doesn't request any network permissions. No absolute safety though, as it could use other means of transporting data from your device – so a little risk is always left.
On my site there's a possibility to search for apps by permission, but the app list there is far from being complete (my database has just a little more than 10.000 hand-selected apps recorded). A search for keyboard apps without the internet permission a.o. turned up MultiLing – an app which Thanh already recommended to you, and which has support for Vietnamese, and its sister-app Multiling O Keyboard requesting even less permissions (just the basic ones a keyboard app must have: read & write the user dictionary, plus one harmless: vibrate). But be welcome to check for yourself!

Even if the app is made by the single most honest, and well intentioned developers there's always malicious outside interference ala the current iCloud celeb pic issue!

Agreed. And there are also things like integrated ad modules the dev cannot fully control (if used). But these two things are not affecting apps without Internet permission: there are no ad modules without that, and the likeliness of accessing "the cloud" also is pretty low this way ;)

You can't. A keyboard, by nature, is required to know everything you type, including your account credentials. Your best bet is to select keyboard coming from top developers.
My favorite? Multiling Keyboard, supports multiple languages (including Vietnamese), highly customizable, the only keyboard I know of that doesn't require Internet permission (so the keyboard can't send what you are typing on the fly).
Some other popular keyboard that support Vietnamese includes Swiftkey (free), Swype (paid).
As for Vietnamese products, Laban is fine (comes from Vinagame I think), Gotiengviet also was used by hundreds of thousands users without any incident.

About Internet permission requirement, I wonder if the app store those sensitive data somewhere to the phone storage, and via another VNG app with Internet permission, upload that data to their server. What do you think about that?

Laban Key comes from VNG and even via rumor from Pham Kim Long - the author of the legendary UniKey. As VNG is a Chinese-funded company, I do not trust them. If only Pham Kim Long do the same thing for Vietnamese input/keyboard on Android as what he do for desktop alone.

Well, if you really doesn't trust Vinagame then just use someone else's product, I mentioned 4 alternatives in my post :) The power of Android is the power of choice after all

The following are steps to follow in order to discover the app which might bug you. These below steps will also help you to find any application installed on your device is a bugging app or not.
1.Download the permission checker application from the play store.
2.Download any keyboard application which ever is reputed based on the ratings and which suits your needs.(Don't forget to read the privacy policy as most of the users never read is the big and important privacy policy, do not install any app with many one word reviews as these are normally suspicious)
3.Later open the permission checker app and check what kind of permissions is the app requiring. In the app you will also get a brief 1-2 line description for the type of permission used by the application.
If you see any irrelevant permission to the app or you find it suspicious then you can un-install it.
last but not the least if you still do not understand the description given by the permission  checker app then you can google the permission in your local language which shall give you the complete description.
You can not completely avoid the privacy of your app as it also depends on the type of internet connection you are connected and the level of security it has(i.e. the WPA2-psk is the most preferred connection in terms of wireless but WEP will still do the bit),if the device itself is bugged then your are possibly being eaves dropped.

That requires the app already being installed. To avoid the issue in advance, one better checks the permissions before install. A good starter for that is our permissions tag-wiki, and the bi-lingual (English/German) explained app permissions on my site ;)

@Izzy well said but 1 cannot know what permissions an app is using because most of the permissions are hidden (i.e. the advertisement permission which is never displayed under the normal permissions in the play store)

I've never heard about an "advertisement permission", nor is it listed in any of the references known to me. I admit it's not easy checking permissions of apps you have not installed (thanks to Google), but there are multiple sources: Google Play itself (a bit tricky), AppBrain as an alternative front-end to it (not always complete), and also my applists (not covering all apps, and relying on other sources for those details). Checking after install is an useful additional step though, definitely :)


text:
How to sync non-picasa folder displayed in Gallery app?
I often use Instagram to add effect and frame to my photos.
Then, there is a folder named instagram appearing in Gallery; but that folder won't be synced with my Google account i.e. on another Android device signed in with the same account, I don't see that folder.
So my question is that how I can have it synced?

PhotoSync (Sync to Picasa) might be your choice:

PhotoSync is tool for sync photos to Picasa(Google Photos). though limited, you can sync videos too.You can also sync photos among multi devices via Picasa.

This works nice for me. Bi-directional sync available only in paid version though

Just out of topic quick ask, how would you snapshot your phone? I cannot do that without rooting it :(

That depends on the Android version running on the device. Since 4.0 it's natively built-in, before some devices (e.g. Samsung) already had it. See: How to take a screenshot with an Android device? for examples ;) But most of the screenshots I post here come from the playstore -- I cannot install all apps on my devices just to post them :)

Alternatively, you might want to take a look at apps like e.g. FolderSync:

FolderSync is a application that enables simple sync to cloud based storage to and from local folders on the device memory card. It currently support multiple SkyDrive, Dropbox, SugarSync, Ubuntu One, Box.net, LiveDrive, HiDrive, Google Docs, NetDocuments, Amazon S3, FTP, FTPS, SFTP, WebDAV or windows share (Samba/CIFS) accounts, and support for more platforms are planned.

With this app you can define which folders shall be synced where, thus adapting everything to your very convenience.

(click images to enlarge; source: Google Play)

Would be lovely and meet my need if FolderSync have the Picasa name on the list. Thanks Izzy!

Yeah, it doesn't sync directly to Picasa, it seems. But you might ask the dev, maybe he adds it. As long as it's not there, you can still use it to sync the images across devices. Or take a look at PhotoSync (Sync to Picasa).

Please separate your answer for PhotoSync as a new answer so as to be accepted. Thanks for your help Izzy.

As you wish ;-)

The gallery is showing the Instagram folder cause it scans the whole device and external storages and grab all folders with images. You can't sync that folder but can share once in a while with Picasa so that process will upload images on that folder to Picasa. And then Picasa will sync that folder to your rest of the devices.

How can I share once in a while that Instagram folder JanithaR? I tried to upload it to Picasa but I'm afraid it just create a new album and not synced at all

Just select the whole folder (tap and wait), the share option will popup and chose Picasa. The first time tell Picasa to create a new folder and it will create Instagram folder and upload the files to it. The next time when you have new files to upload simply share again and that time chose the existing Instagram folder in Picasa. :) You can't automate this unless of course there is a third party app built for it.

Thanks for your clear and helpful explanation! I need it automated though.


text:
What is the differrences between Talk and Google+ Messenger?
Both are the chatting tools of Google.
I use Talk since I use Gmail to chat with my friend and when I see Google+ Messenger, I just thought it is Talk but the two are NOT the same at all - i.e. chatting with one person on Talk  and he/she will NOT receive it Google+ Messenger.
This is so confusing. What is the differences then? Why there are two chat tools like this?
Update
The funny thing is that Google+ Messenger is used for chatting with Google+ users from Android phone. But when I log in my Google+ page, I can ONLY talk with Talk friends !?!? I want to continue my last chat with a friend on Google+ from my PC, but now I cannot. So funny!

Hopefully this shouldn't be a problem/confusion for too much longer, it looks like Google will soon be merging all of their instant messaging and presence apps into one, Google Babble: http://techwhack.co/google-babble-merge-google-talk-messenger-hangouts-43398/  http://www.geek.com/android/google-expected-to-unify-chat-under-the-name-babble-1543151/

Google Talk syncs to your Gmail account. This offers free instant messaging to all your Google contacts that you have invited to “talk” with. You can use the services within the Gmail web page, or download Google Talk and install it on your computer or smart phone.
Google+ Messenger, originally called “Huddle”, is a sub service to Google+.
The big difference between the two is that Google+ Messenger is the instant messaging service that is synced to your Google+ account, not your Gmail account. People who are added to your “circles” are the ones that are able to be messaged with. Another difference is that Google+ Messenger allows people to have group chats.
Source: difference-between-google-talk-google-messenger-and-google-hangouts

Yeah you're right. Group chatting is what not available in Talk.

Well, I cannot find way to use this sub service "Huddle" on Goolge+ site...

No, you can't. The two services are totally incompatible with each other (not to mention the other messaging services that Google offers). There are rumors (and some evidence) about a forthcoming unifying chat service called Babel.

As @GAThrawn shared above, the "rumor" is Babble http://www.geek.com/android/google-expected-to-unify-chat-under-the-name-babble-1543151/

And on Google+ website, we chat by Talk instead of "Huddle", so funny :(

Google have now integrated all of their chat and messaging services into one app on Android, Google Hangouts (not Babble as was previously rumoured).
From the app's description:

Use Hangouts on computers, Android and Apple devices.
Hangouts stay in sync across devices so
  you can start or continue them anywhere.

In particular Google Talk, GMail Talk, Google+ Messenger and Google+ Hangouts (group video chat) are all integrated in this.
Google Voice isn't fully integrated yet (in particular SMS integration may be "coming soon"), and you can opt out from receiving incoming calls through Hangouts but as Voice is still only available in the US it shouldn't affect too many people.
You may need to upgrade your Gmail Chat to the new Hangouts experience by:

Hangouts works right inside Gmail, where Chat did before. You can upgrade Chat to Hangouts by clicking on your photo icon in Gmail's chat list.

You may need to set up your Google+ circles to allow members to message you.
More info on the main Hangouts page and in the Hangouts help.

Thanks GAThrawn. This is the right result we need in chatting by Google tool


text:
Is there a way to display Interstate Rest Areas on Google Maps Navigation?
I've had several instances where this information would have been useful when navigating w/ Moto Droid, but I haven't been able to figure out a way to get to interstate (USA) rest areas in Google Maps Navigation.  Are they grouped in with something else? Called something else?
I was thinking of suggesting this to Google, but I wanted to make sure it wasn't already there and missing it.

while looking for the version number (4.5) to add to this question, i found an option to add from my maps: Layers --> More Layers --> My Maps --> select a map created ahead of time (by myself or others).  it gets the job done.

A bit of a hack.
Thanks to an answer in the gis.stackexchange.com, I was able to contact the owner of a web mashup (driven by a google spreadsheet) who created an KML export link.
http://tables.googlelabs.com/exporttable?query=select+col3%2Ccol1%2Ccol2%2Ccol4%2Ccol5%2Ccol6%2Ccol7%2Ccol8%2Ccol9%2Ccol10%2Ccol11%2Ccol12%2Ccol13%2Ccol14%2Ccol15%2Ccol16%2Ccol17%2Ccol18+from+261434+&o=kmllink&g=col17
Copy/Pasting this link into the search box in Google Maps on my droid displayed the rest areas on the map.
There's a limit to the number of points the map will display out the KML, so if you are zoomed out too far, you'll only get a cluster of points.  So make sure you are zoomed in close enough--having a few states visible should still work and be no problem.
When the map points load, the extent changes. I guess it's to the extent of all the points that were loaded from the KML.

Nice find. I'll have to try that.

I'm also attempting to contact google mobile team and see if they would consider adding this type of data as a layer--that would be a lot more convenient.


text:
Is it possible to enable the Android default keyboard on an HTC EVO 4G?
I am not much of a fan of the HTC EVO 4g's custom keyboard, but it appears that they have somehow removed or hidden access to the default Android keyboard input method.
Especially now that the default Android keyboard has been enhanced in 2.3 (Gingerbread), does anyone know of a method to enable the default keyboard instead of HTC's customized keyboard?  I haven't seen an application to do this, but I've noticed that some applications (Vlingo in particular) seem to somehow come up with what appears to be the Android default keyboard.

Yes you can - from this thread on XDA-Developers, you can use the APK on unrooted phones, depending on your Android version. Remember to pick the correct version for your phone.

I tried it earlier today and worked good for me :)

I'm pretty sure I tried this version yesterday and it did nothing on the EVO 4G.  Bryan, is yours an EVO?

I found this solution--I'm a little bit nervous about installing it though (it requires flashing the phone.)  Better solutions would be preferred!


text:
SMS group text alerts
I'd like to be able to send out occasional group text alerts via SMS blasts to a small set of people.  I'd rather not use a standard group text message because I want everyone's individual number to be private.  I don't want people to respond and bother everyone else on the list, so it seems like a tool that could send out several individual messages would be the right way to accomplish this need.
What options, if any, are available to accomplish this?

If you want recommendations for a specific app, you better ask at our sister site for software recommendations (as those are off-topic here). I'm not aware that's possible with what "stock Android" ships with. Hint: Take a look at Wishy, which seems to meet your requirements. But asking for other means (as you've just done) is of course fine here :)

The Google Messages app can do most of other than process unsubscribes. Just go to settings, advanced, group messaging:

(click image for larger variant)


text:
How can I make Android remember default apps after upgrades?
After choosing a default program for an action, every time an app gets updated that relates to that action, the OS unnecessarily asks which program to use.  I can't be the only one to be aggravated by this defect.
It's especially irritating for apps that get updated frequently and serve multiple intents.
Here is the scenario:

User installs app (for instance, a new web browser-Dolphin)
User performs intent (for instance clicking a hyperlink from an email)
Android OS asks user which app to use.
User selects Dolphin browser, checks check box at the bottom of the popup window with the label "Use As Default" and selects new web browser app.
Android Market installs new update for Dolphin.
User performs same intent as #2 (clicking a hyperlink from an email)
Android OS forgets "use as default" setting and Android OS asks user which app to use.  [Steps 3-7 repeat ad infinitum]

The bug occurs at step 7.
I submitted a bug report for this issue.  In the meantime, is there an app that works around it?

I've always found this behavior annoying, especially since I use GO Launcher which updates relatively often. I like my apps to get new features and bugfixes, but having to constantly reset it as the default app gets old.

No, you can't work around it unless you make changes to the android sources and compile a custom ROM. The Installer Service is a core part of the system and cannot be replaced or overridden like other apps can.
This is by design. It will only ask you again if one of the apps that was updated is one that has other apps that can perform the same task.
The same thing happens if you install a new application that can perform the task of another app. This is because updating an application is actually just like installing a "new" application. There is no difference in what happens when you install a new application on your device or if you update an existing application. So if there was a way to have it "always remember" this option, then when you installed a completely new application that you want to use, you would never get presented with the option to use it.
Lets use the launcher as an example. You use GO Launcher for a long time and you have it set as the default. Then you decide you want to use the new Foo Launcher, so you install it. Now when you go to the launcher you are asked what launcher you want to use. If you set it to "always remember", you would not be presented with the option and you (or maybe other users) would consider this a poor experience because now they have to figure out how to change the launcher to the one they just installed.

I get that this is by design--to me a poorly thought out design. I understand the very different use case you presented when a user installs a new application that can perform an intent that another app can already perform. In the case of a new app being installed that performs an intent, the default app should be requested again.

It's especially annoying (and potentially dangerous) when, for instance, you're driving and use voice commands to call someone... only to have it sit there waiting for you to choose Skype or Phone as the default.  :(


text:
How to switch input method quickly on Android?
Since I need to use many different input methods at the same time so I wonder if there is a way to switch input method faster than pulling down the notification bar and clicking select input method?

If you are running on version 4.x you can change it from the notification bar or if your running on 2.x you can hold down where you are inputting the text and change it from there.

I am on version 4.x and need to change it from the notification bar every time. I feel it's quite inconvenient.

The only other option is if you're running 4.1+ you can hold down the space bar to switch it.

I am running 4.1.1 but when I hold down the space bar it only opens application manager.

Running 4.1.2 here; holding down Space Bar with any of my 3 installed keyboard gives no reaction whatsoever.  I also find the normal way of switching IME (via the Notification Bar) clunky and slow.

You can try Floating Keyboard Switcher Pro. It allows you to switch between keyboard quickly anywhere.
There is also a free version which lets you pull up the IME dialogue anywhere.

Select Input Method apparently lets you open the IME dialog via a single long press on the Search button.  You can use the SIM Test to try this out before paying for the app.  However, since most modern phones don't have a Search button, this app has limited usefulness.
Comments suggest that Pie Control can provide a soft Search key which can then be used to activate Select Input Method.  However, I found that I was unable to map Search to a "slice of Pie" on my 4.1.2 Galaxy S3 (despite being able to map other controls like Home).

On Android 6 and later you can configure a keyboard change button to appear in the control strip alongside the soft Home and Back buttons whenever input mode is active. But if you have physical Home/Back buttons this probably won't work.
If you are rooted then you can flash a custom ROM such as SlimRom (https://slimroms.org) where you can assign the keyboard change action to long/double tap on Home or on the Back button.


text:
Show dial/call duration
In Android 2.1 there was the possibility to drag the notifications bar during dialing a number and to be able to see when the phone started ringing (it was starting counting when connecting, then resetting the counter when dialing) and hence be able to "beep" somebody without listening the dialing sound.
In Android 2.2 this function disappeared. Is there a way to bring it back or an app in the market for this?
Thank you!

If i understood you correctly, you want to get notified when a call goes through, not when the other person picks up? You could try Settings -> Call settings -> All calls -> Call status tones -> Call connect tone to get a sound from the speaker when the call connects, so you don't have to hold the phone to your ear. Is this what you were looking for?
Edit: I know, it doesn't answer the title but could help with the problem.

Thank you for your answer, but I don't seem to find the menus from "All Calls" forward...I have HTC Legend. And, basically, I would prefer a visual feedback, not an audio one. I would like to be able to beep someone in "complete silence". But anyway, what happenned to the countdown which was present in Android 2.1? It was very useful.

Could be that the function is customized to my Samsung Galaxy S. Sorry I couldn't help, I've never paid attention to the counter.

@linkyndy There's an app called Spare Parts that might allow you to change the setting onik suggests.

OK, thank you for your suggestions. I will try. Is there any other more "official" way to achieve this?


text:
How do I keep my wi-fi on in sleep mode
When I am downloading large files I need to stop my phone from sleeping , how do I keep my wi-fi on when the phone is in sleep mode.

Go to: Settings > Wireless & networks > Wi-Fi settings.
Hit your Menu button and select Advanced. You should now see an option for changing the Wi-Fi sleep policy.

For Android 4.0 (Ice Cream Sandwich) and later upto Android 5.x (Lollipop)
Goto:

Settings > Wifi > Advanced (from options menu) > Keep Wi-Fi on during sleep > Always

For previous versions of Android(i.e. 2.x) please consider Rohan Singh's answer.


text:
Exchange no longer working after upgrading to Froyo
I have a HTC Desire that was on 2.1 and worked perfectly with my works exchange server.
But since upgrading to 2.2 I cannot get it to work at all. There are no errors it just synchs forever.
Any suggestions?

It looks like there is an issue with the Exchange Server certificates and Froyo. I have found a few others with the same issue:

Exchange 2007 doesn't work after ota 2.2 update
Android 2.2, FRF91 now Active-sync is unable to connect to server, all was fine on Android 2.1

Those links have several workarounds that might solve your problem as long as you can get your IT team to help figure out what is going on.
I have seen several people mention the the Touchdown (appbrain link) app is not having any problems. Touchdown is an alternative to the built-in Exchange sync. It might be the easiest solution for you - though it is a paid app - $19.99 as of right now.
QR Code for the app market:


text:
How to change calendar week start day in Android?
I prefer my week view of my calendar to start on Monday rather than Sunday. I already have my Google Calendar set that way (to which I sync).
How can I do the same on my Droid (Android 2.2)?

This is apparently not possible on a Motorola Droid with Android 2.1.
FroYo is slated to release next week. Maybe it will also change the ability to set this value. (If it does I'll change this answer.)
Sadly, this is still not possible with Android 2.2 either.

For what it's worth, I am able to do this on my Galaxy Nexus (Android 4.0) and, presumably, going forward, using the stock calendar.

The popular home screen replacement LauncherPro Plus comes with a home screen widget that does just this and sync's with your Google calendar

Uninstall the app.
Cange the language of the device to an European one (English UK or Spanish)
Go to Play Store and download the Google Calendar app. Install it.
Now the week starts on a Monday
Change the language of your device back to your previous one (English US)
The week starts on Monday.

It worked for me.


text:
Is there a way to disable "call from" when I use Google Voice?
I love Google Voice, but I don't want people calling me to be asked to say their name and I don't want to be told to "press one" to accept their calls. I just want to get my calls. Is there a way to disable that feature?

Go to voice.google.com. Top right, click on Settings -> Voice Settings.  Go to "Calls" tab.  Turn Call Screening to "Off"


text:
What are the Pros and Cons to running CyanogenMod?
Can anyone that's used it list the relevant benefits and drawbacks?  I'm actually more interested in the drawbacks and limitations because its not hard to find praise for it.
Edit: Ooops, I forgot to mention, original Droid currently running Android 2.2

Your mileage with Cyanogen Mod (CM) depends on the phone you are running. If you have an HTC phone, you will not have any HTC Sense running or installed at all. So HTC widgets will not work. This is a hurdle for many HTC phone users that enjoy some of those widgets. Personally I've been able to find adequate replacements to them. So that wasn't a barrier for me.
If you are not using an HTC phone there probably won't be a lot of cons. Again though you might not be able to use any stock widgets that came on your phone. But you might have a different dialer and contact app then what you are used to.
Do you connect to an email system at work, such as an Exchange mail system? I do and that was one of the reasons for me not using CM. Not that it didn't work, but there was some functionality I was missing, a few settings and I didn't like the way the contact app managed the Exchange contacts. Whatever HTC uses for their builds worked better IMO so I use an HTC based ROM.
As Saboogu states, hardware will make a difference too, but CM team is good about refining their ROM and working out kinks so that it functions well even on older phones.
If you are already rooted make a NAND backup first. Follow this guide I wrote keeping in mind it was written for an Evo, but most info still applies to other phones. Once you have a backup then wipe and flash and go from there. See if you like it and the feature set. This way if you hate it you can easily restore your backup.

The biggest goal of CyanogenMod, in my eyes, is to provide back porting of functionality to older phones who are not getting the latest version of the Android OS (2.1+), e.g. the G1.  It also gives plenty of little tweaks here and there to add some functionality to your phone that you may not have gotten before.
It also (typically) requires rooting your phone, so you also get those benefits too.
Although CM releases "stable" versions, your stability may vary.  You'll most likely see more reboots from CM than a stock rom or other miscellaneous bugs.

Really depends on your hardware. At this stage, CM6 is likely slower on a G1 than the OTA 1.6 release. Maybe not quite as stable either, but certainly more feature-packed.
On the other hand, on a higher memory device that has native 2.x support, those same drawbacks won't apply.

As Bryan Denny stated, your con is also a pro. It allows older phones to run newer iterations of the OS which it otherwise would not support.

I'd agree with that. I've just flashed CyanogenMod 6 onto my HTC Hero which is not the most powerful phone in the world and it works well. HTC were not going to take it past 2.1 but now I have all of the froyo goodness :-)

We have an Orange San Francisco, AKA ZTE Blade in the family.
I would say the biggest weakness I found with the CM7 rom for this device is around various little bugs with proximity sensor, wifi connection and power management states.
IMHO this is due to ZTE being very hacky in the way they maintain kernel source, and partly due to having undocumented hardware revisions which causes various minor glitches. This caused extra work for the devs who put the Blade kernel together for CyanogenMod, but all issues have been fixed.
Sometimes users suffer bugs and simply do not report the bugs on the bug tracker so the devs are unaware of issues to fix.
All these are minor issues, against the well know pros of CyanogenMod. I have had far more stability, performance and support from CyanogenMod than I did from Orange and their stock ROMs.

More importantly to add to that, there was variations of the Blade, some were European variants which, some had 512Mb, others had 256Mb, some had OLED, others had various different touchscreens, and lets not forget the Chinese variants as well, and Indian variants (Dell?) so all in all, that was what the initial CM7 was about, most if not, all, are fixed though. Battery drain is still an issue iirc.

I previously owned a HTC Hero and I resorted to CyanogenMod (CM) because it does not contain HTC Sense.
However due to hardware limitation I noticed that my phone ran slower as the Android version increase. Since Froyo the phone no longer fast and there are times it lags.
Another problem I faced was hardware support. For example camera may lack of some features introduced by HTC.


text:
Application Always Downloading
I notice sometimes an app (in this case Dropbox) is always downloading when I go into Market > Downloads. I even uninstalled it. So it doesn't appear in my application list but it still says Downloading in the Market. The progress bar is empty.
I couldn't find anything on the web. Has anyone else experienced this?

I had trouble downloading the latest update. What I did was from the list of applications in the Market, I did a long press and Cancel download. After that I was able to select it and download it successfully.

That did it. I think I had tried cancelling the download, either after a short press or via the menu, but it kept starting up again (without finishing). Thanks!


text:
The loud speaker on my Samsung Captivate stopped working! Is my phone broken or can I fix it myself?
The speaker at the back of my phone, used for ringing and playing sound without headphones, is completely silent. Do I need to have it repaired?

The Samsung Captivate's speaker can work its way loose, usually after the phone takes a hard knock (like being dropped). In most cases you can fix it yourself by opening the back and pressing HARD on the speaker with your thumb. You should probably power the phone off to do this.

Oh man! Didn't think it was going to work but it did! Thanks a lot for the TIP. If it was my question I would have accepted this as the answer! :-) Thanks for the question & the answer!

It sounds like you're up to fixing it yourself. Here are TechRepublic teardown links in case you need them. Just make sure you have the proper tools (and patience). Good luck!
TechRepublic Teardown - Main
Speaker Assembly - Front