text:
Can't mount ext4 with StickMount
I have a 2nd generation Nexus 7 running Android 4.4.4. I rooted it, got an OTG cable and tried to mount something using StickMount. It always says it mounts things successfully, but in the case of ext4 partitions, I just find an empty folder at the mount point. Fat32 partitions work fine. What could be the problem and how to check?

I was not able to mount ext4 with stickmount alone, but I had some success using USB OTG Helper with stickmount still installed. If I use USB OTG Helper to do the mounting, it mounts ext4 successfully (even if it says "no drives mounted"). Both apps need to be installed at the same time for this to work.


text:
Copying the phone number into the clipboard in the Google Voice application
In the application Google Voice is there any way to copy the Google phone number into the clipboard without having to type anything?
I use a Samsung I9300 Galaxy S III with a rooted Android 4.1.2.

You can't copy anything from the list view, but if you tap the message to open it, then tap the "compose" button...

...then you can select the phone number from the bar at the top the normal way (by long-pressing):

source: Stack Exchange

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

sort: votes


text:
"Android is upgrading... Starting Apps" on boot
I have a Galaxy S3 phone with android version 4.1.2.  I have not upgraded my phone recently nor have I rooted the phone.
This afternoon when I turned on my phone, I got a message saying "Android is Upgrading... Starting Apps" for a few seconds, then gave me my lock screen and a few seconds after I unlocked my phone, it automatically restarted.  Since then, every time I restart my phone, I get that message for a few seconds before I get my lock screen, but it does not automatically restart my phone any more.
I currently do not have a photograph of the message nor can I find one online.
Most of the references that I have seen refer to rooting and dalvik cache, but I do not think this is the case since I have not rooted my phone and using the stock 4.1.2 for the Galaxy S3.
The most recent app that I installed was Cartwheel yesterday.
The only other problem I had was that a week or two ago, my phone seemed to have gone into 'Factory Mode' (see picture in the first post of the linked thread (not my actually phone).  I seemed to have solved the issue by inputting *#87976633# into the Dialer. You could see the solution (and an example picture in the first post in the thread) HERE.
I thank you in advance for any suggestions.

Welcome to Android Enthusiasts! The only other problem better goes to a separate post; this is a Q&A site, which works best with one question per post. You can link the questions for reference if it helps to provide background ;)

I think the "only other problem" bit was intended to offer additional information in case it was relevant to this question.

@MichealJohnson: That is exactly why I included it.

I seem to have found the solution for my issue.
After posting the initial question I started noticing every so often I was getting a message saying that Aces Bubble Popper has stopped responding.
I have not used this game in a very long time and haven't updated it in an even longer time.
Apparently this app has permission to run at start-up (why a game needs that permission, I do not know and wish I could disable).
After updating the app, I am no longer getting the messages that the app stopped responding, and I am no longer getting the "Android is Upgrading... Starting Apps" when my phone boots.

authors: ปาจารีย์ ตรีนนท์

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


text:
Should the Data Saver Icon Look like Plus or a Pause?
According to this page, the data saver icon should look like a pause button.
However, on my nexus 6P (using android nougat), I get a plus icon instead whenever I turn on data saver.

What does that mean? Am I understanding something wrong? Also, if I keep it on, does the data saver option (no background download, and limited app connectivity) when I am on an unmetered Wi-Fi?

They might have changed it. The linked article ends with "it's worth remembering that Data Saver may change (or even disappear entirely) between now and the final release."

It looks like Google changed it. According to a video on this page it should look like a plus sign.

Thanks. One more question. When I turn on the data saver, does it also affect the traffic with unmetered wi-fi, such as no background update, no automatic loading of images etc.?

On the same page it says "cell data" so I expect that all background Wi-Fi data  will be unaffected by data saver. (If you use your device as a Wi-Fi hotspot while connected only by cell data, other devices connecting through your phone will be affected)


text:
Adaptive internal storage : analysis
What are the possible difficulties occur if I use external SD card using Format as internal storage ? I have checked this link:
How does the "Format as internal storage" feature work in Android 6.0+?
Here are some doubts:

Does internal storage space increase, if no why?
Whether any memory problems with TWRP, Titanium backup?
What to should I do, If I need to switch with another SD card as external OR restore to earlier?
What will happen, If I accidentally boot device without SD card?
What to do after upgrade? (upgrading to higher android versions OR to lower android versions )
Will this action improves performance?

The internal storage doesn't increase itself, but external storage start behaving like internal (you can move apps to it and so), so you can say you have more internal which is used for apps mostly
With titanium backup you shouldn't have any problem as with other apps, for TWRP I can't say anything because I didn't have that experience, but since adopting is android feature recovery shouldn't make you a troubles
If you pull out SD card which is adopted app which is on SD card (adopted storage) won't function for obvious reasons, and SD card can't be used with other phone because of encryption. If you put other SD card instead of one you have adopted new card will behave normal, like external storage.
Nothing special, just apps which were on adopted storage (SD card) won't work, and instead of their icons there will be little green android, also data stored on adopted storage won't be there (obvious).
Don't know about this one, but as I said adopting is android feature so there shouldn't be any problems, but as we know sometimes after upgrading phone goes little crazy, so there is chance you maybe should perform factory reset, but just maybe.
If on performance you think on faster loading apps, that won't happen, SD card are way slower than actual internal storage, but there won't be much difference in loading time maybe for some big, very big games/apps, basically, most of people who adopted their SD cards done that because they needed more space for apps
So if you want to adopt SD card make sure that is at least class 10 that would be minimum, and speaking from my experience adopting could kill your SD card not really kill it but kill r/w speeds so it becomes 10x slower, happened to me with 16 GB transcend, also it is possible that SD card was crap.

What's class 10?

@Wrichik Basu https://www.sdcard.org/developers/overview/speed_class/

authors: Једноруки Крстивоје


text:
What actually determines whether I see H+ or 4G in the top panel?
So, I read the answers to What are the different signal indicators avalable on the notification bar? and as one answer says:

3G: UMTS (384 kbit/s to 7.2 Mbit/s)
H: HSPA (enhanced 3G, sometimes shown as 3.5G; up to 21 Mbit/s)
H+: HSPA+ (even more enhanced/faster HSPA; up to 42.2 Mbit/s)
4G: LTE (thanks to eldarerathis for confirmation); up to 300 Mbit/s

I'm guessing that these speed definitions are determined by some international convention or something like that.
I have different SIM cards from different carriers.
When I use Carrier A I see H+, H or 3G in the panel. I get speeds ranging from 4 to 12 megabits per second.
When i use Carrier B I always see 4G in the panel. However, I get speeds ranging from 1 to 2 megabits per second.
By the way, these are general trends for these carriers in various areas, not isolated instances of speed.
So, it seems that what symbol I see in the panel needs not matter so much for the actual speed? (Except for E, which is always terrible regardless.)
If not speed, what is the real reason for what symbol I see? Is it arbitrarily set by the carrier? Can they simply choose to call their network whatever they like? Or does it have to do with what sort of technology they have in their tower? Maybe Carrier B actually does have 4G towers, only their networks are overloaded and therefore cannot supply proper speeds to all the users?
I am in India where 4G is still new. AFAIK, Carrier B might have more traffic than their network can handle.

@beeshyams Can the carrier arbitrarily decide if they want to call their network 4G or H? If we ignore legal issues?

Let us continue this discussion in chat. @beeshyams

It is the speed that determines what is shown in the indicator
For the conventions regarding the symbols and speed , see this - which are in line with what is mentioned in your question
Advertised throughput speeds are not the actual, real world throughput speeds experienced by the end user. See this for factors affecting the speed

Coming to your main concern regarding different speeds and variance with symbols displayed:
Situation described is India specific and regulated by Telecom Regulatory Authority of India. AFAIK, they are aware of operators delivering lesser speed than advertised and are in the process of streamlining it. Details are being skipped here being broad / opinionated

Operators are not at liberty to falsify speeds - some typical practices have been covered in comments
It is best to reach out to the carriers and or TRAI to get to the operator version of it

The speed has nothing to do with the icon being displayed so that statement is incorrect, the icon is specifying what technology is being used to connect to the mobile network. The handset is not evaluating performance and making a judgement about the icon. A slow 4G connection will still show 4G.
4G has much higher theoretical speeds and therefore should in general be significantly faster. However, numerous other factors will affect overall performance, such as:

Signal strength (a 1-bar 4G may be worse than a full-bar 3G
connection for example)
Traffic shaping at the carrier or other restrictions
Contention or other back-end infrastructure performance issue at the carrier
Local network performance e.g. mast equipment at the carrier

If you've got a 4G-capable carrier that is performing worse on a like-for-like basis than a 3G+ carrier then this is of course a significant problem but it is a carrier problem nonetheless.

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


text:
How to retrieve contacts from not rooted phone?
Unfortunately I dropped my phone (galaxy S3) and the screen is black, so I cannot do anything on the phone. But other than that, it is fully functioning, and I can see the files when connected to a pc.
There is this question which states that the phone needs to be rooted in order to access the database where the contacts are stored. Is there an other way to retrieve contacts when the phone is not rooted?
The gmail sync was unfortunately not enabled. Is it possible to turn this on remotely?

If you have access to an identical phone, you might be able to place them next to each other and replicate all activtites on the dark screen (blindly, without seeing what you do). That way, you might be able to mail your contacts out or something similar. That assumes that the screen still takes touch-input, of course.

unfortunately it doesnt take touch-input, otherwise that would be a great tip!

Can you use Kies to backup the contacts from the phone and access them on the PC?
http://www.samsung.com/us/support/owners/app/kies
Or maybe even the new SmartSwitch software that has replaced Kies, although I have never used it.

this worked, many many thanks! I was able to export the contacts to a .spb file, then downloaded kies 2.6, opened the .spb with it and exported it to vcf/csv format.

If the contacts were in SIM memory then you can insert the SIM card in another phone and get them back.
If you say the phone is functional then you should consider replacing the Display Hardware and get your whole phone back.

unfortunately they weren't on the sim. replacing the display is the next step, but we needed some of the contacts immediately. thanks anyway :)

You can buy a 11-pin MHL to HDMI adapter and hook your S3 up to your TV. Since your touchscreen doesn't work either, you'll have to buy an official "Samsung" MHL adapter along with an OTG adapter so you can hopefully use a USB mouse along with the TV output. (Not tested)
Another idea with a guarantee of working, you can just buy the $2.00 OTG adapter to hook up a USB mouse, and use the hardware keys to take screenshots within 3 seconds of moving the mouse, then copy the screenshots onto your computer to check your mouse position before clicking. It will take a while, but you will have a couple bucks into it with 100% success rate.
Finally, you could just get the screen fixed.
Hope this helps

thank you for the creative answers, I was able to get the contacts with the Kies software, but otherwise this would have been the next step. thanks :)


text:
How to transfer Whatsapp audio files to computer?
I know how to copy pictures received on Whatsapp to my computer, but I don't see audio files received on Whatsapp anywhere to be accessed and transfered to my computer. Any suggestion?

The path to access/view then in your device is as below:

WhatsApp/Media/WhatsApp Voice Notes/

This is inside your internal Storage.
Go inside this folder, choose a voice note that you want to send to your computer. These audio notes file names are starting with PTT. Select "Share" option and choose from available choices such as Email, Gmail, Bluetooth etc. Send it using any one of these and receive it on your computer.
If you connected via USB, then you may want to copy these files to External SD-card and then browse it using file explorer via PC. Those files be shown as ADTS Audio files which you then can copy into your computer/PC.

all of them(Picture-sound-video etc), will be saved to this Directory :

sdcard/WhatsApp/media/

and example for Audio File's :

Sdcard/Whatsapp/media/WhatsApp Audio

Thanks but I don't see this folder when visting my mi4 folder upon USBing it: http://i.imgur.com/u0eI7ji.png

connect the device with MTP (Media Device), not with PTP(Camera).with file manager like Xplore(on device) you can see this folder.and on this picture, i cant see another folders.your welcome.

I have similar problem several days ago. I try this trick and it works.

Open the folder on your mobile. It is WhatsApp/Media/WhatsApp Voice Notes/
Select all files all any files you wanna copy to your computer
Attach them on email and send email to yourself
Now open your email on computer and download the attachments.

Tadaaaaa~~~ Now you have the files on your computer ^_^
NB. The files extension is .optus, if your media cannot play it, I suggest you download a optus-mp3 converter.
Hope this helps. Good luck!

If you have Airdroid installed on your phone and computer, it's quite straight forward.

Run Airdroid and connect in the usual way.
In Airdroid on your computer, click on  Files→WhatsApp→Media→WhatsApp Voice Notes folder.
Open the most recent folder (they are date stamped).
The audio note files are all in there in the format PTT-[date] and end with a sequential number.
Right click and download to your computer's desktop.
They will play directly in Windows Media player (WMP) if you double click them.
You can drag them into WMP and set up a playlist with them. Reorder them by dragging them up or down the list, delete unnecessary ones, and more.
Save the playlist under a name of your choice, and there you have them!

It took me only a couple of minutes to work this out.

Open the file manager folder on your device. Then open file named WhatsApp/Media/WhatsApp Audio then select the audio you wanna transfer. Click on share button after the audio been selected. Choose any of sharing options e.g Bluetooth Email or WhatsApp if your PC has WhatsApp installed in. Or you can just transfer it through USB (Media Transfer) to connect your device and computer.

I'm saying this judging from the screenshot you just posted. It looks like the icon representing your phone is a camera icon n the only folders you can see are DCIM (photos) and Pictures. Basing on this, I'd like to assume your phone's USB computer connection is currently set to camera PTP instead of Media Device (MTP).
Here's the link to change the setting to MTP
after that you can then try the methods Mohsen and the other guys suggested.
:)


text:
Use android device to host a website
I have an Xperia Mini which I want to make a web server, to host a website on it so me and other people can visit the website (it won't be something like 1000 visitors per minute). So, if this is possible, can you please:

Point me at what to read about this, so I can set it myself
Tell me if the phone can run only on a charger, without a battery (because I expect it won't live long if the battery is constantly charging)

Install the corresponding app, and there you go. Oh: Find it in my list of Webserver Apps: Simple web server, such with scripting support, and even ones with the entire stack (including MySQL or other databases). As for the battery question: see our battery tag-wiki, and especially Does constant charging harm my Android cellphone?

You can run Webserver on Android for example :
KSWEB
but, there is 2 Case for use with Android Device :
First :

your phone Broadband is how much ?
this Broadband can support users
  and online at 24 hours of day ?

second :
this is not good idea for start webhosting or other something with a Android device.your hardware need backup and set other Options...
and about Questions :
1.

Point me at what to read about this, so I can set it myself

yes you can.use below link :
http://www.androidguys.com/2014/04/22/host-website-android-device/

2.

Tell me if the phone can run only on a charger, without a battery
  (because I expect it won't live long if the battery is constantly
  charging)

i have no idea, But this links maybe can help you :
http://www.makeuseof.com/answers/can-i-directly-power-an-android-device-by-circumventing-its-battery/

www.youtube.com/watch?v=Dp_sJYQR1Bg


text:
Access Denied to site using Chrome app
When attempting to access the NASA ADS ( http://adsabs.harvard.edu/ ) site via my Samsung tablet (SM-T530NU) connected to a WiFi network I get the following message:
http://ads.harvard.edu/cgi-bin/access_denied
This does not happen when I try to access via my laptop connected to the same WiFi network. This also does not happen if I use the default browser that Samsun ships instead of the Chrome Android app.
I contacted the administrator of the site and he told me that there's an issue where Chrome is apparently "sending out HTTP requests with X-Forwarded-For set in the header", which is causing this. My IP is not blacklisted by the way, I checked.
I have no idea what this means or how I can fix this. Any help will be much appreciated.

Any reason why you have to use Chrome?

Well because I like it :) I know I can get around using the stock browser but I want to solve this issue, not hide it.

You may not be able to resolve it since you've already indicated it's bug in Chrome. You can always revert back if they fix it.

I don't think I've indicated it's a bug. I said what the administrator told me, perhaps it can be solved via some configuration on the app or the system.

It may be that Google Chrome's traffic compression servers are blocked. They work as proxies and compress your traffic from non-secured websites. Also they are fully transparent so that the server always knows who you are even though you used that proxy.

@GiantTree your comment hit the nail on the head. I had Chrome's "Reduce data usage" (translated from Spanish, not sure how it's called in English) option activated, after I disabled it I was able to access the site normally. Would you mind turning your comment into an answer so I can mark it as accepted?

Google Chrome's traffic compression servers may be blocked.
They work as proxies and compress your traffic from non-secured websites. Also they are fully transparent so that the server always knows who you are even though you used that proxy.
This means they send the HTTP-X-FORWARDED-FOR flag which seems to be blocked by the website you try to access.

I'd suggest to add the solution on OP's comment too, as I can confirm that "Reduce data usage" is using HTTP-X-FORWARDED-FOR and the cause of this issue.


text:
When an app is moved to an external microSD card, to where is it moved?
In Android KitKat on many devices, it is simple to move an app to an external microSD card.  It's as simple as Settings -> Apps -> [Select the app] -> Move to SD card.
For apps whose manifest allows them to be moved (something every good app should allow except when there is a valid reason to not), this works like a charm.
Doing this frees up the device's internal storage, allowing room for more apps.
But to where are the apps actually moved?
I thought the apps would be moved to the Android/data and Android/obb folders on the external SD card.  But upon examining those folders with several root file managers, the moved apps are not visible in those locations.
What's the story?  To where are those apps being moved?

I am voting to self-close this question, as I see another very similar question here: When app is moved to SD card, where is the app data stored on SD card?
I'm not going to delete it because Susan's answer is very useful and appreciated.

Apps installed on the SD-Card are stored in the ".android_secure" directory.
You cant see the APK files directly in that folder because the it is encrypted to prevent direct access to the APK file of paid apps.


text:
update from external storage
I am trying to update system to either Android 5.0 lillipop or Android 4.4 KitKat. I formated sd card to FAT32, and moved rom there.  When in recovery I used apply update from external storage    failed to verify whole-file signature  signature verification failed
I downloaded both roms from here
the same thing happened for second rom.
I am using Onetouch EVO7.
if this may help recovery says recovery system v4.00
Also I can not use fastboot to connect with device (waiting for device), so I am using adb instead. Device is rooted using kingo root

The link refers to GApps package which do not contain any ROM but only the apps developed by Google which may not be present if you install a Custom ROM. You need to (unlock bootloader, if the device has bootloader locked) then install custom recovery(some devices do not allow installing custom ROM from stock recovery) and then flash/install a Custom ROM and flash GApps package at last.

The 'ROMS' you have downloaded are actually just the Google Apps that would come with a stock ROM.

Every new Android Smartphone comes with various pre-installed apps such as Gmail, Google Play Store, Google Chrome, etc., which are referred as Google proprietary apps or specifically Gapps. These apps are developed under Google Licensing terms in order to prevent usage in any other mobile operating system and modification by the third-party developers. This is the reason that you can’t get your hands-on any of the Gapps after installing Custom ROMs.

The site you linked to is providing these apps in a way that allows you to easily add them to a custom ROM you already have on your device. It is not providing the custom ROM. You will need to look elsewhere for this as they are specific to each device model.


text:
Compatibility problems with x86 phone?
I have read this and this question and I want to ask for some elaboration.
I'm considering buying an x86 phone. I have some questions regarding compatibility issues.

I know that the majority of normal (non-root) apps will work without issue on x86, but I understand that there are exceptions. Apparently some apps use native ARM functions. How common is this? What are some examples of popular apps that won't run on x86? Can I get an idea of how widespread this problem will be?
Is it true that root apps are less likely to run than normal ones? How widespread is incompatibility with x86 in root apps?
I know that Xposed Framework can work on x86, but what about the modules? Are many of them incompatible with x86? If yes, how common is it?

Have you checked in the forums for various x86 devices, such as the Zenfone 2? I know on XDA they maintain a thread on app compatibility, in general most things work. "Root" privelage apps are about the same, most work fine, there are a handful that do not. My experience with Xposed on x86 devices is limited, but the one device we tried it on didn't fair well, out of about 4 or 5 modules we tried it was a 50/50 split. TBH, if you are getting into Xposed, why not just use a custom ROM?

@acejavelin Yeah, see my comment on the accepted answer and the answer I myself just made. My experience is pretty much the same as what you said in this comment. Regarding custom ROM, I actually think the stock firmware is pretty decent. I like the UI. It has native Greenify-like functionality. A bit much bloatware, maybe, but that's easy to remove.

It's mostly games that might be incompatible with x86.  Typically, apps have no reason to use the NDK unless they has special performance or graphics requirements, and their libraries might only be built for ARM.
I don't believe that apps using root are typically incompatible, it's rooting apps — since they often rely on platform-specific binaries/exploits.  Root apps are not inherently different in how they are coded than others apart from requesting elevated privileges via su.
Unfortunately I am not familiar with Xposed support for x86, but I believe the answer should be similar to #2.  Xposed mostly functions by injecting itself into Android's platform framework, which is Java rather than native libraries.  I would advise you to be careful with backups and making sure your device is relatively easy to flash if you need to restore everything to stock.

FWIW, the guys at XDA have done a lot of testing and reported on which Xposed modules work. It looks like most modules work.

I did buy it. So far, all apps * (root or not) and six out of eight Xposed modules I have tried  have worked. This is a somewhat small sample, because I haven't tested any apps I don't use myself. These are just the apps I personally use:
* = Update: Pokémon Go does not work on x86 at the moment.
Some working root apps

Adaway
BusyBox installer by Meefik
f.lux
Linux Deploy
OS Monitor
Root Browser
Root Checker

Some working Xposed Modules

Gesture Navigation
Network Speed Indicator
NoSafeVolumeWarning
YouTube AdAway
YouTube Background Playback
YoutubeSwipeToSeek

Some NON-working Xposed Modules
(I don't know if this has anything to do with x86, may also be Lollipop incompatibility? No idea.)

Notification Mod
Rootcloak

The guys at XDA have done much more extensive testing in this thread.


text:
"Insufficient storage - The device does not have enough space to download…" error only when downloading a language pack in Swiftkey
I'm always getting this error message when trying to download another language pack in SwiftKey:

Insufficient storage - The device does not have enough space to
  download [language]. Consider deleting apps or content that you no
  longer need and try again. [Screenshot 1]

However, I have 3.33 GB of available space in internal storage [Screenshot 2] and 3.68 GB in the SD card [Screenshot 3]. This error never occurs in any other app, even those installed after SwiftKey. And it only happens when installing another language pack within SwiftKey. It does not happen when reinstalling SwiftKey or when changing the theme in SwiftKey. I've already tried:

Uninstalling even more apps
Moving apps to SD card (for those apps that allow moving to SD card)
Clearing the cache and data of SwiftKey and retrying the language pack download
Uninstalling and reinstalling SwiftKey (also tried clearing cache and data before uninstalling)
Running the SD Maid app's AppControl and CorpseFinder cleaning modes after uninstalling
Searching for files with 'SwiftKey' in their names in SD Maid to ensure that no SwiftKey files are left behind after uninstalling SwiftKey. Also tried searching with the Amaze file manager app (root mode). No files are found in both searching methods.
Used the Delete old messages app to delete many of my old messages

Solutions suggested by answers in other related posts:

Languages wont download [SwiftKey forums]

Tapped on 'Update languages'' in the language download menu and after that tried downloading the language pack again
Attempted deleting the 'languagePacks.json' file at
/sdcard/Android/data/com.touchtype.swiftkey/files/. However, there is no 'languagePacks.json' file under the 'files' directory.

Why am I constantly running out of space on my Galaxy S2?

Dialling *#9900# to attempt to delete dumpstate/logcat but I'm getting a "Connection problem or invalid MMI code" error message
Deleting contents of /data/logs but there is no 'logs' folder under 'data'. There is a 'log' (no 's') folder, though, and I've deleted all of it contents.

Install/Update Apps gives “Insufficient Storage Available” error, although I already cleared the cache and other data

Deleting contents of /data/app-lib/APP-PATH [that has this error]/lib while SwiftKey is installed, however the 'lib' folder does not exist.
Deleting /data/app-lib/APP-PATH [that has this error]
Deleting /data/app-lib/APP-PATH after uninstalling, however this path does not exist for SwiftKey after it has been uninstalled (it seems that an uninstall clears it properly)

Titanium Backup “insufficient free storage space” error

Unticked 'Mount namespace separation' setting in SuperSU

How to empty (clear) the logcat buffer in Android

Tried the adb logcat -c command

I've restarted the phone after doing the above-mentioned attempts, but they haven't fixed the issue. The error message still appears when I attempt to download another language.
Is there anything else I could try to resolve the issue?
Details:
Device: Huawei Honor 3C H30-U10
Android version: 4.2.2 Jelly Bean
The device is rooted. Superuser management app: SuperSU.

The only relevant storage for this error is the internal storage. False alerts have been reported before; please take a look into our insufficient-memory tag-wiki for first aid and useful links, then let us know if those were able to solve your issue. Good luck!

@Izzy Alright. Will take a look at those posts.

@Pete Know of an alternative that supports word prediction for more than one language without having to manually toggle between the languages? I prefer SwiftKey as it can do that, also SwiftKey can sync my account data (word predictions, themes) on all Android devices.  I've tried many of the other popular keyboard apps before but they all need the user to manually toggle to switch word prediction to another language.

Turns out this was a bug with SwiftKey and was fixed in version 6.3.6:

Fixed: ‘Insufficient storage’ error message will not appear when downloading languages

Before that version, I did a workaround by restoring a backup of SwiftKey's data using Titanium Backup (requires root) from another device with SwiftKey and the language pack already downloaded and installed. This will however, keep the settings and logged-in user data of the source device, so you'll to log-out the existing user and edit the settings after you have restored the SwiftKey data.


text:
Google's backup service: what is it for?
I don't understand the goal of Google's backup for Android devices.
I always thought that the automated backup was used to make sure that if anything happens with my device, I won't lose my data. In other words, if the device is stolen or lost or simply stops working, I can purchase a new one (eventually identical to the old one), tell Google to restore everything from the old device, and lose only a few hours/days of data, depending on the frequency of the backups.
Recently, I purchased a tablet with Android Lollipop. Since it had a few hardware defects, I sent it back for an exchange, after checking that “Back up my data” was checked in “Backup & reset”. There was no important data on the device, but I spent an hour installing and configuring different apps, and would have preferred avoiding doing it again.
To my surprise, when I received a new tablet, there was no options to restore the backup, neither from the old tablet (same model, same version of Android Lollipop), nor from my Android phone (that was expected, especially since the Android version is different as well).
The questions of people being in similar situations seem to indicate that Google's backup doesn't cover this sort of cases. Similarly, a Google search seems to indicate that a third-party backup tool should be used for those situations.
So:

If the device is stolen or lost or stops working, one cannot restore the backups to another device.
If the user messes with the device so much that he should reset it, restoring the backup will mess the device once again.
If the user wants to restore the device to a previous state (say a week ago), there is no such thing in Google's backup/restore: only the latest state can be restored.

Therefore, what is it for? What could be the actual case where the Google's backup would be of any use?

Additionally, for those who are interested in doing nearly-full backups of their non-rooted device on a PC, the answer to “Full Backup of non-rooted devices” may be helpful.

I think you misunderstand what Google backup is and does, and it varies by Android version and app... I know this can be confusing but prior to Lollipop the only information backed up was system info (wallpaper, WiFi passcodes, etc) and Google info like contacts, calendar, notes, and stuff. Beginning with Lollipop, the installed apps (not their data) are backed up and can be restored from a list on a compatible Android install. In Marshmallow, application configs (not data) that are designed for MM are backed up. Many vendors/carriers have their own backup tools as well.


text:
My adoptable storage is full. How can I move the data to a bigger MicroSD card?
I've got a Moto G 2014 LTE running CM13. When I found out about the whole 'adopt SD card as internal storage' thing, I was quite excited, as the actual internal storage on this phone is tiny. I set up a 16gb micro SD, the biggest I had at the time, and have been using it with minimal problems.
Fast-forward to this day, and I now have a 64gb micro SD that I want to use instead of the 16gb one. However, I'm at a loss as to the best way to copy the data over onto the new one, or if it's even possible. The ideas I've got so far include:

Titanium Backup all [system] apps, factory reset, format new SD and then restore (should work, but a massive pain)
NANDroid the SD card onto a USB OTG stick, then restore to the new one (pretty sure this is a bad idea and won't work, but...)
Copy all the stuff onto my computer via my phone through a file manager of some sort (I have a linux/linux/windows triple boot, so file format isn't a problem), format the new SD into phone, and copy back (can't be that simple, can it? Hidden/inaccessible files?)
Copy the files onto USB OTG with a root file explorer app, reformat the SD as portable, format the new one as adopted, and then copy them back (could work, except for the point below)
Format the 64gb SD card as internal through an OTG card reader with the command adb shell sm set-force-adoptable true, use a root browser to copy all the data over from the old SD, format the old SD as external and remove it, and take the new SD and put it in the SD card slot (seems overly complicated, and also suffers the below pitfall)

The other thing that worries me is mount points: will the apps with externally-stored data know to look at the new SD card for it? Will I have to remount it in a specific location with the shell each boot (or use an init.d script perhaps)? I suppose that it can always be accessed through /sdcard or /storage/emulated/0, but I'm not 100% sure what goes on behind the scenes.
I've got recent NANDroid backups, so if anyone can eliminate the options that definitely won't work (or say which one[s] probably will), I can try them and report back in case someone stumbles across this question in the future.
EDIT: So, my phone further bit the dust and got to the point where it got into a pretty major bootloop. Ended up having to flash a whole new ROM. As such, I probably won't be able to test the full image/decryption/etc. method that I was originally planning. However, I will write up what I've discovered so far in case anyone wants to take up this particular method in the future:

Image the old SD with dd as follows: sudo dd if=/dev/mmcblk0 of=~/SDCardBackup.img, where /dev/mmcblk0 is the location of the sd card as obtainable through lsblk
Restore the image you just made to the NEW sd card : sudo dd bs=4M if=~/SDCardBackup.img of=/dev/mmcblk0 (you may have to unmount it first)
From here on in, I was following this (thanks @beeshyams!) tutorial, which explains the next steps way better than I ever could have done. The plan was to decrypt the storage and resize the main partition with gparted. I had no idea whether it would work or not, but I felt it was worth a try. However, when I came to run the actual decryption command using the key I'd extracted, I got an error (which I believe was my shoddy linux skills more than anything).

As I say, I have no idea if the above method would work or not even if everything did go to plan. Also, feel free to correct any of my commands above if I mis-typed them (I'm on Windows currently, so this is all from memory.) If this info helps anyone, then good. But until then, @faidherbard's comment should work fine.
Thanks,
Jackdafish

Key thing you are missing is that it is, encrypted, which means not possible as far as I know. See [tag:adoptable-storage] for more info (edited your tag list to include this). There is a possible way, theoretically, you can try to get over the encryption problem

@beeshyams Thanks, I'll take a look and report back if I have any luck. Is the encryption key retrievable/findable with root access? I seem to remember something of the sort...

One Possible (?) way to recover encryption key is linked in the comment.

@beeshyams OK, I'll take a proper look when I get back. If you move the files off the phone while it's on though (i.e. file explorer app > USB OTG, or plugged-in-phone > desktop file explorer), don't they get unencrypted? Otherwise they'd be unreadable on the next machine.

Going via our adopted-storage tag-wiki, you'll find How does the “Format as internal storage” feature work in Android 6.0+?. At the end of my answer to it you'll find details on what @beeshyams just hinted at :)

Thanks for all the info guys! I think I'll grab that encryption key and try getting the lot off the SD card, formatting the new one, grabbing that encryption key and copying all the data back. See how it goes. I've got all my backups in order, so if that doesn't work I'll do a factory reset. If it does, I'll write up a step-by-step answer in a few days time in case anyone else comes across this post. Cheers :)

Even if it doesn't work out, updating your findings may add value to others similarly placed. All the best

Quick update: still working on it when I have the chance. Basically, I've imaged the old SD onto the new SD, and have a command to unencrypted it (which I can't remember off the top of my head). The command, however, is failing. I believe the failure is a problem with my copy of the tools involved though, instead of a broken command, which is good. I'll try getting it sorted ASAP

Having a similar issue, I read through the comments to your question and ended up doing the following based on a hint suggested by Barleyman:

Go to Settings > Storage & USB › Internal Storage, click on "Migrate data" to move your data back to internal

In case you do not have enough space left on internal to move everything back (which was my case), here are some additionnal steps:

Connect the phone to a PC via USB and back-up the contents of the old "adopted" SD Card
Manually delete enough data from the old SD Card to be able to do the move: typically pictures and videos that you can easily restore afterwards
Click on "Migrate data" in  Settings > Storage & USB › Internal Storage
Check that the old "adopted" SD Card is now empty (or even format it back to "Portable") then eject it
Insert the new SD Card and set it up as "Internal storage" and agree to move the data to it
Eventually reconnect the phone to the PC via USB to restore manually deleted data

Reference: Answer to "How does the "Format as internal storage" feature work in Android 6.0+?":

You can reverse the process by opening "internal storage" from storage settings and there's "migrate data" that will copy everything back to internal nvram.

Hey, makes perfect sense.

After step 3 I had to go through all the apps listed as stored on the SD card and move them to the internal memory until there were no more apps stored on the SD card. Then after step 5 do the opposite to whatever apps you want to store on the SD card. Otherwise, it worked like a charm.

I keep getting "not enough storage" even though my SD card only has 4 GB and my internal has 40 GB free


text:
Where should I install Toybox?
I own a rooted Samsung Galaxy S Relay 4G running stock Android 4.1.2.
If you have Android 6.0 "Marshmallow" or better, then you have Toybox.  This is a package of command-line tools, handy for advanced users who sometimes use a terminal emulator.  Unfortunately, Android 4.1.2 does not include Toybox. Instead, it includes some other tools which aren't as nice to use.
Sometimes I use the terminal emulator written by Jack Palevich; other times I use adb shell from a laptop.

Would it make more sense to install Toybox to my system partition, or to my data partition?  Both partitions have far more than enough free space.
When a command is provided both by Android and by Toybox, I want the Toybox version to win.  On Linux, I might install Toybox to /home/unforgettableid/bin or /usr/local or /opt.  Could you please suggest a sensible place for me to install Toybox (and its large collection of symlinks) on my phone?

[Edit:  I wonder what the various BusyBox installers do.  Also, I wonder how Android sets the PATH environment variable.  As well, I also wonder whether or not there's a way for me to change that variable and to make my change persist across reboots.  Finally, I wonder whether or not putting the Toybox tools first in my PATH would be likely to break things in non-obvious ways.]

Possibly related:  "Android Folder Hierarchy".

If your Android version ships with Toybox and some Toybox symlinks, you can leave those in /system/bin.  But, if you're installing Toybox yourself, it might be wisest to put the freshly-installed Toybox, and all its symlinks, in /system/xbin.
Let me explain why.
As Firelord points out in his answer:  adb shell starts an interactive shell.  But commands such as adb shell ls start a non-interactive shell.  For performance reasons, non-interactive shells never read any config files.  Because they don't read any config files, their search path is hardcoded.
It's nice to have Toybox available even to non-interactive shells; in fact, if it's unavailable to such shells, it can be confusing.  So you definitely want to install Toybox to a location which is on the search path.
But you might not want to put the Toybox symlinks any earlier in the search path than Android's cp, ls, and other basic utilities.  I've never checked, but I theorize that your version of Android might include apps which depend on quirks of the stock Android command-line utilities.  To learn more, see this post, in which the Android command-line tools maintainer explains why Android had to stick with its non-Toybox ls for some months.
Most of the stock Android command-line utilities are in /system/bin.  The only directory which falls later in the stock Android shell's search path is /system/xbin.
That is why you may want to put Toybox and all its symlinks in /system/xbin.

Tip:  If you want, you can create a shell script which simply passes all of its parameters to Toybox.  You can give this shell script an ultra-short name such as t.  This makes it easier to request that your device should run a Toybox toy instead of a stock Android command.  For example, to run Toybox ls, simply enter t ls.

Tip: you don't need a script actually. A symlink to toybox or renaming the toybox to t would be enough.

@Firelord: Neither of those ideas work. If you try them, the Toybox multiplexer simply complains that there is no toy named t.

Hmm, that's weird. I'll have to search a reason for the issue. Anyhow, an alias works. I created an alias named t inside mkshrc and it works. alias t="/system/xbin/toybox". You will have to re-read the source file mkshrc using source /system/etc/mkshrc or exit the shell and open a new shell session after making changes.

Where should I install Toybox?

Would it make more sense to install Toybox to my system partition, or to my data partition?

Depends. If you don't plan to factory reset the phone ever again, you can choose data partition, else, choose system partition.

When a command is provided both by Android and by Toybox, I want the Toybox version to win.

The PATH variable contains the location of the directories containing executable binaries. Should you decide to keep a separate directory for your symlinks, configure $PATH to search for a command into your directory first. If it finds one, it will execute it.

On Linux, I might install Toybox to /home/unforgettableid/bin or /usr/local or /opt. Could you please suggest a sensible place for me to install Toybox (and its large collection of symlinks) on my phone?

All those locations don't exist for Android. Since you're using Android 4.1.2, I suppose you would be having your external SD card formatted with a  FAT filesystem. Symlinks don't work on FAT filesystems (not on FAT32 or vfat at least) so your best bet is to install under /data or /system.
Alternatively, you can make an image under your external SD card, format that image with a filesystem supported by your Android's kernel (often EXT2 | EXT3 | EXT4), then mount it in the device anywhere in loopback mode. I've not tried this method though.

I wonder what the various BusyBox installers do

Busybox (by Stericson) places the busybox binary into /system/xbin and creates  symlink for its applets to its binary under the same directory.

Also, I wonder how Android sets the PATH environment variable. As well, I also wonder whether or not there's a way for me to change that variable and to make my change persist across reboots

I do not know when Android sets up $PATH. However, the shell you're using  would most likely be having a configuration file.

mksh (MirBSD Korn Shell; the default shell on Android) has a configuration file mkshrc in /system/etc. You can set $PATH there and the change would be persistent across reboots.
For bash shell, the configuration file is bashrc located under /system/etc/bash.

It appears that both files are meant for interactive sessions only, so if you attempt to use adb for accessing a Toybox or its symlink which is not placed under /sbin, /vendor/bin, /system/sbin, /system/bin or /system/xbin (the default locations in $PATH), you would receive a "COMMAND: not found" error. This is because the default $PATH would be used instead.
I've not found a solution for this problem yet, but see the comments below this answer.
Anyhow, let's install Toybox for now.

How do I install Toybox on an Android device?
Note: the solution assumes that your Android is rooted, that adb is setup in PC, and that your device is connected to a PC with USB debugging enabled.
Installation into system partition
No change in $PATH is required if you choose a standard location. Busybox prefers /system/xbin.

Remount the system partition in rw mode. If required, see Can't remount /system in rw
Copy the toybox binary to /system/xbin/ and give executable permission to it. (The default permissions set for other binaries is rwxr-xr-x.)
You can do so using chmod
adb shell su -c "chmod 755  /system/xbin/toybox"

Create symlinks for various tools accessible by toybox binary. It is up to you how you create them.
I used a very simple method, but it requires a *nix system
adb shell toybox | sed 's/\ /\n/g' | head -n -1 | tr -d '\r' | while read line; do adb shell su -c 'ln -sf /system/xbin/toybox "/system/xbin/$line"'; done

All I'm doing here is executing the toybox binary, replacing the white-spaces with a new line so that each tool shows up in a new line. Later on I'm removing the last line (it was blank in output), removing carriage return conveniently put by adb, and then for each line of output I'm creating a symlink to toybox binary with the name of the tool, in the same directory.
You can use this method if you don't have a *nix OS in PC:
adb shell
su
toybox | toybox sed 's/\ /\n/g'| toybox sed '$d'| while read line; do  toybox ln -sf /system/xbin/toybox /system/xbin/$line; done

Done! Your Toybox and its applets are ready to be executed.
Installation into data partition

Create a directory under /data (/data/my_bin henceforth)
Copy the toybox binary to /data/my_bin and give executable permission to it. (The default permissions set for other binaries is rwxr-xr-x.)
adb shell su -c "chmod 755  /system/xbin/toybox"

Create symlinks for various tools accessible by toybox binary. It is up to you how you create them.
I used a very simple method, but it requires a *nix system
adb shell su -c "/data/my_bin/toybox" | sed 's/\ /\n/g' | head -n -1| tr -d '\r'| while read line; do adb shell su -c "ln -sf /data/my_bin/toybox '/data/my_bin/$line'"; done

Only the location has changed, the rest of the procedure is alike to one followed for installation in system partition
Edit your default shell's configuration file and add
PATH=/data/my_bin:$PATH

This would cause the shell to look into /data/my_bin first and execute the binary, if available.

Done! Enjoy your Toybox and its applets.

I've now posted my own answer, which builds upon yours.  If you like it, please upvote it.  :)

Nope, I don't like it because it doesn't solve my problem and doesn't tell me anything new. I want toybox inside /data or /sdcard but wants non-interactive shells to know about those locations. There should be a hack somewhere. Anyhow, could you cleanup your comments?

I've cleaned up my comments. Next time, you can simply flag them as obsolete instead. 2. If you need a hack, perhaps you could recompile mksh and hardcode more paths into it. But anyway, what's wrong with keeping Toybox in /system?


text:
When changing SIM card what needs to be copied or transferred from the old SIM card?
I'm changing to a new SIM card with my phone. I know Contacts are able to be stored on the SIM card, so I've copied them across (I used an import as described here).
Other than Contacts, is there any other data stored on the SIM that might be important to export or copy, and how would I do it?

Sims are not a recommended way of storing any data, they are too disposable... Use the cloud,  Google is supported on all major platforms. If you keep everything backed up to Google, about the only manual thing you need to move is SMS messages.

SMS if saved on SIM card- some phones have that option, beyond that nothing

@acejavelin I agree, however some of my data found it's way onto the SIM anyway (4 Contacts, and 1 SMS)... I don't know how!

@beeshyams that's half the answer I wanted... the other half is how to move the SMS's off the SIM. If you can put both those things in an answer I'll accept it :-)

As requested, posted

@acejavelin Cloud is not a recommended place to store sensitive data. Use the "Export to SD card" option of the contacts app instead – and then the "Import from SD card" option on the new device :) // I however agree on not using the SIM for that. Too limited storage, size-wise and details-wise: contacts with multiple phone numbers are not supported, neither are many of the additional details.

Related: Transfer everything to new phone? // How to migrate accounts and data from one Android phone to another?

Exactly What Information Does My SIM Card Contain About Me? mentions what is stored in your SIM card , with a caveat that some of the information is carrier specific
SMS, contacts are of common concern and since you have already transferred the contacts, what is left is SMS, which this app SMS Mangaer claims to do ( I haven't tried it). Another app Easy Backup & Restore , recently updated, also claims to transfer call history, if that is of importance to you

A SIM card typically has 8k to 256k of memory which stores MNC, ICCID,
  IMSI, Authentication Key (Ki), Local Area Identity (LAI), and
  Operator-Specific Emergency Number. The SIM also stores other
  carrier-specific data such as the SMSC (Short Message Service Center)
  number, Service Provider Name (SPN), Service Dialing Numbers (SDN),
  Advice-Of-Charge parameters and Value Added Service (VAS)
  applications.
Most SIM cards will orthogonally store a number of SMS messages and
  phone book contacts. The contacts are stored in simple "name and
  number" pairs: entries containing multiple phone numbers and
  additional phone numbers will usually not be stored on the SIM card.
  When a user tries to copy such entries to a SIM the handset's software
  will break them up into multiple entries, discarding any information
  that is not a phone number. The number of contacts and messages stored
  depends on the SIM; early models would store as few as five messages
  and 20 contacts while modern SIM cards can usually store over 250
  contacts.

Source

The SIM card has a special file where the SMS are stored, the file has
  several "slots" in it, each slot holds a message. The number of slots
  is finite, i.e. a SIM card can store 20 or 25 SMS (depending on the
  capacity, newer cards have more slots). When all the slots are filled,
  you have to delete an old SMS before you can save a new one.

[Paraphrased] Modern phones do not use this storage normally, but all SIM cards have this capability since it is part of the GSM standard.

Source

SMS and Contact management are handled by applications on your device, in an Android this is typically your Dialer or Contacts application, and for your SMS messages this is handled by your Messaging application. This seems to be a thing of the past now though, as many apps do not include support for storing or retrieving user's SMS or contact information from the SIM card. SIM Manager is an example of one application that can help you manage the information on your SIM card.
Also note, your carrier may insert information such as a welcome message as an SMS message, or contacts such as their customer service, billing, or repair service numbers.
So the answer to your question is that both SMS and Contacts can be stored to the SIM card, but it's limitations likely mean the use of it for backup and transferring to another device in modern smartphones is extremely limited.

You should copy all your contacts to phone or you can use cloud google storage which supports all the major platforms of devices.


text:
Genymotion pattern forgotten
I am using genymotion to emulate Google Nexus 9.It so happens that I was not using this virtual machine for about a month so I have forgotten its pattern(yes it was protected by pattern lock). Now I need to use emulated Google Nexus 9 but it can't due to pattern lock. So how can I bypass or change pattern lock so I can again gain access to my device.
P.S.-I have seen Can not unlock my Android device as have no internet connection? but for methods in this link I need to go to recovery mode but that can't be done in emulated phone(I think so).

Genymotion comes with VirtualBox (if you haven't already installed it).
Open it up and you should see your emulator there with a preview of the screen.
The content is just a terminal with white text on a black background.
We can use this terminal to interact with the shell fairly easily, no authentication required.
Open the window (press the green Show button) and simply delete all *.key files in the /data/system/ directory.
Luckily the terminal is already running as the root user and thus we can execute the command rm /data/system/*.key.
This deletes all encoded and hashed lock information and forces the system to remove any protection present (a feature of Android's KeyGuard to prevent full system lockouts).
Reboot the emulator (using the command reboot) and wait a few seconds.
To conclude: Don't try to protect an emulator, there is and there should never be any reason to store private data on a mainly volatile emulated system. These emulator are designed to help you create apps (which means sometimes wait a long time to finish the build) and a lock screen is more than just annoying to unlock every time you need to test a new version.

authors: Турлан Жакупов


text:
How can I get a overview and manage the default applications for file types?
Most OSs show a nice summary about which application will be used to open a certain file type. Android does not seem to have such a function.
How can I track and manage the default applications?

How many players do you have installed so that writing a question here and waiting for an anwser will be quicker than checking them all?

@Mihic, this doesn't matter; the question is about file-type-centric solution. There are many ways how player name can be unknown.

As you maybe already know, for each application that currently is a default application for something, say a PDF viewer, you can reset this default in the application settings (Settings -> Applications -> Manage applications -> Your app -> Clear defaults). After this, the next time you perform the action (e.g. open a PDF), a popup will appear, letting you choose a new default.
As far as I know, this is all you can do with stock Android.
There are however, 3rd party apps, that give you an overview of the currently set default applications for common things, e.g. Default App Manager.

Is there any way to do this if you don't know what app a particular file is associated to? My friend has a problem that he have chose the wrong app and hit set as default, and he don't know which app it was!

You can use Default App Manager:
https://play.google.com/store/apps/details?id=com.appiator.defaultappmanager
It allows you to set default app for picture, music, web pages, video, etc...

If there are a lot of them, it might be easier to just clear all default applications. You can do this without installing an app or having to look through a list. Go to Settings, then Apps (in the Devices section). From the overflow menu pick Reset app preferences.
The next time you have more than one app for something, you'll get the app chooser. Any apps that you really did want as default you can set again in the same way you did before.

Ha! This is exactly what I wanted. I never thought to look in the overflow menu.

But this will also reactivate all deactivated apps. Which was a lot of work

Default App Manager will show you all applications that have "Clear Defaults" available in the application settings screen.

After many trial and errors File Expert solved the problem. I couldn't open e-book files ("cannot open file") and programs people advised didn't fix it. Not Astro Manager nor Default App Manager. The last one only lists file types that apps REGISTERED, but if the handler would be registered correctly, I wouldn't search web for help.
File Expert gives you the option to open selected file with selected app. That what solved the problem but no other file manager does that (or at least this one the first I found does that after several app I've tried)

Thanks for your answer, please also provide an link to the app you recommend.

Well, the only thing you need to find it on Google Play is name, but ok, I'll provide developer's name and google it for you:
File Expert from GeekSoft.

It's good practice to include the links of the mentioned software right into the post. It saves some work for the users who try to follow you recommendation.

Can you explain in more detail how to do this? I have downloaded "File Expert with Clouds" and happily it can see all the files in my Dropbox, but when I tap on a file nothing happens. If I long-click it says "1 selected" at the top of the screen and there are some icons, but I'm not finding where it will let me choose what app to open the file with?

More specifically, long-tapping brings up what looks like a trash can icon, a copy icon, a cut icon, a weird icon that appears to select all, and a menu with options for "Details", "Rename" and "Cancel".  Nothing about opening the file anywhere.


text:
Will I damage my Android device by charging it using a generic microusb + car adapter?
I need a second charger and a car charger for my Evo 3D and the same for my wife's Nexus S, but I don't want to pay exorbitant prices for them.  Will I fry or otherwise damage the devices using something like this couple with a cheap microUSB to USB cable priced about the same?  Will the devices complain about using "unapproved" chargers and refuse to charge like some iPhone models do with some 3rd party chargers?

USB, mini-USB, and micro-USB cables are standardized, the voltage and amperage are the same across all standard compliant USB chargers. As long as the charger is a standard, generic micro-USB charger then it should be alright.
That doesn't make it impossible for a manufacturer to create a non-standard plug that looks like a USB plug, but they're pretty much screwed up if they do so.

Looks like I just saved myself $60 then vs. buying "official" stuff.  Thanks a lot!

Some very cheap car chargers do not do well while the engine is starting (cranking), especially in old cars. That's generally only a concern on crank, though.

Micro-USB is standard size and pinout, so it will provide the power on the right pins no matter what charger that you plug into the device.  Usually any charger that has the Micro-USB plug will work.
Additionally, in most modern batteries, there are a lot of charging safeties inside the device itself, including overvolting, undervolting, charging too quickly, charging when the battery is too hot or too cold, and reverse polarity.  I would be surprised if it would be possible to buy a charger on the market today which would ruin a phone.

No it won't cause any damage. Any generic charger will do. I use a generic car charger like that all the time.

Whilst it won't cause an issue, I've noticed with my HTC Desire that non-official chargers are seen as "USB" chargers by my phone whereas the official chargers are seen to be "AC" types. This is significant because my phone will only draw 500mA in USB charger mode, but will happily pull 1A+ in AC mode.
It's all down to the USB Battery Charging Specification, which specifies that if the D+ and D- pins are shorted with a resistance of at most 200 Ω, additional current can be delivered. The short disables data transfer, but allows devices to detect the Dedicated Charging Port and allows very simple, high current chargers to be manufactured. The increased current (faster, 9 W charging) happens if both the host/hub and devices implement the new charging specification.


text:
does it matter what version of Android I have before installing Clockwordmod?
I have a Samsung Galaxy S with recovery 3E.  I want to install Clockworkmod on my phone, but because of the version of recovery I have, I need to flash CWM via Odin.
When I download the CWM recovery image, does it matter what version of Android I have, whether it's Froyo or Gingerbread?

I wonder if someone's made a CWM 7.1 package for Odin yet.  It would simplify things.

No, it doesn't matter at all for recovery.
Just make sure that if the Odin package contains anything beside CWM (e.g., a kernel) that the versions match.  I've used a Voodoo kernel with built in CWM for replacing 3E recovery, and the kernel had to be 2.2 to match my 2.2 OS.
That said, you could actually flash a mismatching kernel with CWM as long as you already had the Cyanogen package on your device and ready to install.  You'd be able to get into recovery and flash the package even if your OS wouldn't boot.

I have 2.3.3 with Hebrew support (the official version by my carrier).  Should it matter which version of Voodoo I flash, if I choose to flash CWM along with Voodoo?

@Nathan As long as it's for 2.3 and for your specific device (e.g. for the i9000 and not the T959 for example) you'll be fine.  Unless you don't care about whether the device boots, in which case you could probably flash a 2.2 Voodoo kernel as noted.

Should this affect the Hebrew support?

@Nathan I'm not sure what languages CM supports.


text:
Is it possible to track what information on your phone an app is uploading?
If you are concerned about what information an app is sending about you (your privacy concerns) is there any way of tracking this? Can you see if an app is sending photos on your phone? Can you see if it is sending the text that you type in it?
In general can you log the information that an app (application) sends over the network from your phone? Would it be readable? Or at least should it be readable?

Sniffing the network traffic would require root for the app that does the sniffing part. This can easily be done with "shark for root". But you won't get any end-user friendly information, just the raw packet data that's been send and received from your phone. That information needs to be matched to a particular app and action (e.g. app xy is uploading photo file x123.jpg).
Generally you don't want an app to be able to read and log another apps network traffic for security and privacy reasons. That's why you need root for that.
Even if you could read and log the packets from other apps, it's easy to disguise the malicious data as something normal. It is not so easy to reveal that.
Side Note: If you don't trust an app which has network access, don't install it.  If you really need the app and you know that it works also without Internet although the app requests permission to use it, some custom mods will allow you to block internet access without the app knowing.

can you say anything more about the custom mods to block the internet access without the app knowing?...

,there seems to be a program shark reader, does this help? https://market.android.com/details?id=lv.n3o.sharkreader&feature=more_from_developer#?t=W251bGwsMSwxLDEwMiwibHYubjNvLnNoYXJrcmVhZGVyIl0.

@Vass I've added a link. Shark read does just show contents of capture files. It may be more convenient to view them with wireshark on an PC.

If the phone is rooted, no need for a custom mod in order to block network. DroidWall allows you to block network access for any app, without the app being able to do anything about it. (Basically a frontend for iptables.)

You can run tcpdump on the background(compiled for Android processor of course) in a shell, save the captured file and analyze later with wireshark on your pc. That solution will not tell you what application sent the data, but enables you  to examine what your phone sends and where. The great benefit is tcpdump under normal situations does not consume many resources, so you will not experience any lag on your phone.

Is it possible to track what personal information an app is unloading? In general, the answer is no.
Sniffing the precise data the the software is uploading - either through installing some specific software on a rooted device, or by sniffing the traffic elsewhere between the device and the Internet (e.g. on your wireless router) - is a very good idea and will help you understand what the application is doing, but unfortunately the actual information might be mangled in some form or even encrypted, in a way which will prevent you from really knowing what the application is sending.
Actually, it's a known security problem - for instance take a look at this academic paper, which proposes a way to track how your personal data is used during the application execution; though its proposed approach does have some limitations and can be circumvented by other tricks.
My personal rule of thumb is to avoid applications which require both Internet access and access to private data, unless I have a high level of trust in the author.


text:
Geofenced ring volume app?
Is there an app to set a ring volume automatically based on location? What I need is an app to switch to vibrate when I'm at home and turn the volume up when I leave home (ringing phone wakes my sleeping baby and I often forget to silence the phone manually).

I'd recommend checking out Locale, it's meant for this kind of automation. Or Tasker could work too, and it has a 7-day free trial on the manufacturer's page.

I'd suggest you try llama. Why because its free and its awesome. It can not only handle ring volume but WiFi, mobile data, run apps and many more.
The best thing is it works with Cell Mesh, so you don't have to keep GPS on.

A free alternative to Tasker and Locale is AutomateIt from Muzikant.

You could also check Just that does much more than changing volume, plus it has an easy to use interface.


text:
I have an atrix Motorola and I tried to load the "rider x" app (memory problem)
I have a Motorola Atrix and have most all my apps loaded on the sd card.  Seems like I can not get "Rider X" app to work.  It loads but then won't open.  I uninstalled and reloaded.  Sometime I get the message - The location Google Play Store (process com.android.vending) has stopped unexpectedly.  Please try again.  How can I get more internal memory or whatever it is that I need to do?  Thanks

It is probably too old or too new for your phone. If you did not have enough space it would tell you insufficient storage when installing.


text:
Nexus 7 keeps disconnecting from wi-fi
My Nexus 7(android 6.0.1) constanly drops wi-fi connection(connects and disconnects immediately), presumably due to bad connection, while Nexus 5x lying next to it is staying connected just fine.
I got logs using adb and i think the cuprit is

04-30 11:15:38.013   594  7142 D NetworkMonitor/NetworkAgentInfo [WIFI () - 133]: Forcing reevaluation for UID 10022
04-30 11:15:38.018   594  7142 D NetworkMonitor/NetworkAgentInfo [WIFI () - 133]: Probably not a portal: exception java.net.UnknownHostException: Unable to resolve host "connectivitycheck.gstatic.com": No address associated with hostname
04-30 11:15:38.019   594   663 D ConnectivityService: NetworkAgentInfo [WIFI () - 133] validation failed
04-30 11:15:38.019   594   663 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 133]
04-30 11:15:38.027   594   663 D ConnectivityService: sendStickyBroadcast: action=android.net.conn.INET_CONDITION_ACTION
04-30 11:15:38.079   594   663 D ConnectivityService: NetworkAgentInfo [WIFI () - 133] EVENT_NETWORK_INFO_CHANGED, going from CONNECTED to DISCONNECTED

I've checked from PC connectivitycheck.gstatic.com can be reached from my network, both dnslookup and ping work on it
There is no option in wi-fi setting to disable avoid bad wi-fi connection.
What can be done?
EDIT:
Rebooting router and rebooting device did not help. I've also checked the router logs and settings, the device is not blacklisted, and router logs look just fine consistant with the behaviour - device connected, some negotiations, device disconnected.

As i didn't find any solution neither on the internet nor here, i've desided to just flash my tablet using image from google, it helped.
Edit: Factory images for all nexus devices can be found  at this page, it contains simple to follow instructions on how to flash your device as well as images. Take care though failure during flash can brick your device

you can improve your answer and help others as well by linking the image source

Thought it would be trivial to find it, but okay

It adds to completeness of answer being self contained without googling. That is how good answers are on this site . +1


text:
How to prevent brightness when battery reaches high?
I leave my phone (Samsung Galaxy 4 GT-I9506, Android 5.0.1 lollipop) charging on my table when going to sleep. It reaches full after some hours often. It is so annoying when the display becomes bright after battery reaching full, awakening me.
I know the thread How to prevent brightness from going to full when the battery low popup appears? about the prevention of bright display when the battery goes low. The rooted device seems to be the only choice to change the default behavior. I have unsuccessfully installed CyanogenMod in the device a few times. I am open about other ways to root this device and change its default behavior.
Settings > Display does not have any features by which you can alter the brightness mode. It would be great to customize the brightness in different modes, etc when the battery is low. In the link, the user did not want to consume extra battery with display when the battery was extremely low.
I installed Firelord proposed, Tasker, where I am working the automation. I probably need to root my phone for sufficient change.

How can you prevent brightness when battery reaches full in Android?

I can't say whether it would work but in Tasker, you can setup a profile to decrease the brightness the moment battery charges to full. Profile: Event -> Power -> Battery  Full -> Highest. Action: Display -> Display Brightness. Use this in context of time so that this happens only when you sleep. This can be achieved using MacroDroid also.

You may come close but cannot prevent that behavior unless there is a setting unbeknownst to you or the device is rooted. No matter what automation app you use, the brightness would be set to maximum whenever the battery level reaches 100% and in a matter of few milliseconds, it would revert to whatsoever you want it to be. My solution takes care of that problem. Originally posted here.
The file named max_brightness, a file under /sys, hence a part of Linux kernel and directly managed by it, appears to be the key to the solution. I found that setting the brightness limit in that file is one of the best ways to tackle the issue.
I noticed that once your custom maximum brightness is set, neither Android nor an app was able to set brightness beyond that custom level unless they changed the content of that file, which often an app has no reason to and none of them changed either. Besides, the file is owned by root and is part of group root, so any app or even system_server would require root privilege to make changes into that file.
Finding that file is bit tricky. In my MTK device with Android 4.2, that file appears to be under /sys/devices/platform/leds-mt65xx/leds/lcd-backlight/.
In my Qualcomm device with Android 5.0.2 and above, the file appeared to be in /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/.
I assume that the best way to find that file is to run a search query (setup adb for that), such as:
(Requires busybox)
adb shell su -c 'find /sys/ -type f -iname "max_brightness"'

In my Qualcomm device, the output it gives is:

/sys/devices/f9924000.i2c/i2c-2/2-0068/leds/red/max_brightness
/sys/devices/f9924000.i2c/i2c-2/2-0068/leds/blue/max_brightness
/sys/devices/f9924000.i2c/i2c-2/2-0068/leds/green/max_brightness
/sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/max_brightness
/sys/devices/qcom,camera-led-flash.81/leds/torch-light/max_brightness
/sys/devices/msm_sdcc.1/leds/mmc0::/max_brightness
/sys/devices/msm_sdcc.2/leds/mmc1::/max_brightness
/sys/devices/01-qcom,leds-d300/leds/led:flash_torch/max_brightness
/sys/devices/01-qcom,leds-d300/leds/led:flash_0/max_brightness
/sys/devices/01-qcom,leds-d300/leds/led:flash_1/max_brightness
/sys/devices/01-qcom,leds-e200/leds/kpdbl-lut-2/max_brightness
/sys/devices/01-qcom,leds-e200/leds/kpdbl-pwm-3/max_brightness
/sys/devices/01-qcom,leds-e200/leds/kpdbl-pwm-4/max_brightness
/sys/devices/01-qcom,leds-e200/leds/button-backlight/max_brightness

The location where lcd-backlight is mentioned was the only one that made sense to me and this is how I found the file in my device. Don't you worry asking about others. I attempted changing the brightness of the screen and looked for the changes in the file named brightness (also located under those said locations). None of them reflected the correct output other than the one at /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight.
Only for demonstration, try setting a limit in max_brightness
adb shell su -c 'echo LIMIT > PATH_TO_MAX_BRIGHTNESS'   # in my case PATH_TO_MAX_BRIGHTNESS is /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/ and set LIMIT to a value less than 30 (not limited to).

Now try maxing the brightness by using brightness slider or a third party app and you would notice that the brightness of your screen doesn't exceed beyond a certain point even when slider or the app's configuration appears to be at maximum. The brightness for that "certain point" would certainly be less than the default one you are used to.
Note that the maximum value in max_brightness is often found to be 255 and the brightness ranges from 0-255. Often, not always true, that is. And fear not from setting the limit to 0. It would cause the screen not to lit until you revert the changes or restart the device.
Find a limit which would not disturb you in your sleep.

Automation
For automation, use any automation app that can run a command with root privilege and when the context of your preferred trigger is met. I recommend a time based trigger.
Some working examples:

In Tasker, setup a profile with your preferred context, create a task and use the action: Code → Run Shell:

Command: echo LIMIT > PATH_TO_MAX_BRIGHTNESS
check Use Root

In MacroDroid, setup your preferred trigger and for action install Secure Settings, choose it → Actions → Run Command:

Command: echo LIMIT > PATH_TO_MAX_BRIGHTNESS
check Use Root

In Automate, as part of your flow, when setting up an action for your trigger, select Shell command superuser under Apps and do:

Command Line: echo LIMIT > PATH_TO_MAX_BRIGHTNESS

Make sure to install all the permissions the flow require.
In DroidAutomation, setup your trigger and under task, select Root → Execute a command line and type: echo LIMIT > PATH_TO_MAX_BRIGHTNESS

As you would've guessed, you would have to setup two profiles for every app. One to setup a limit and the other to set the maximum brightness to the default you're used to.

I would like you to keep this under consideration (even though you got a hint at the beginning) that using a 100% battery trigger would defeat the purpose of this answer, which is to override the changes Android want to make. As an example, if you setup LIMIT to 0 whenever the battery reaches 100%, what would happen is your Android would lit the screen to maximum as usual and in few milliseconds (you read correctly) your automation app would run and set the limit. Your sleep may get interrupted in those milliseconds.
The workaround is to set up the battery level to 99 or less for full battery charge.
That said, I wouldn't be surprised if you avoid rooting considering that that the biggest compromise you would be making in using an answer with non-root approach is of not accounting those pesky but only milliseconds.

As suggested by @Firelord, you could try with tasker or use MacroDroid
Automation is the preferred option, or rather only option in this case. Many apps are available. I prefer using MacroDroid , since it is free (upto 5 macros) and easy to learn. To understand how MacroDroid works and the settings required for your Android version, see  my answer
Note  This is not tested on Lollipop  as I am on KitKat but should work. Ensure appropriate settings for lollipop are made
Your macro would look like this
Trigger:
Battery Level → increases to → (choose percentage preferred by you on sliding scale or 100 %)
Actions:

Brightness →0 (Choose On sliding scale- doesn't require root)
Wait before next action → set to 10 seconds (recommended to separate previous and next actions ensuring both happen)
Dim Screen →Dimmer On → 10% (Choose On sliding scale- doesn't require root, if the earlier action is not good enough for you -    this is akin to "screen filter" apps like Darker)

Constraints:
Time of Day →Start Time 2200 →End Time 0600 (assuming that's your sleep time)

Have you been able to test out please?

There is brightness for a few milliseconds when using this approach. Firelord's approach ensures no such brightness.

Actually, I am testing to find such a feature by CyanogenMod 12.1 by its default settings. It is much more customizable but I have not yet succeeded. I will let you know if I succeed.

I have posted anyway..May appeal to some

authors: Татьяна Кобка


text:
Downgrade Nexus 9 running lollipop to KitKat
I'd like to downgrade my Nexus 9 to android 4.X (KitKat). Is this possible?
I'm not the pro doing something like that and I could not find something with google.
Can you help me please?
Thank you

It is unlikely, since the Nexus 9 was a Android 5.0 Lollipop launch device. There are no official (Google developed & distributed) versions of Android 4.4 KitKat for the Nexus 9.
Third party roms would be the way to go - but I have found no KitKat roms for the Nexus 9, and I personally doubt one would be developed unless there was a massive interest in it.

Agreed that the N9 is intended to be a Lollipop device, and you are unlikely to find a 3rd party ROM for that device.

This is how you can do it: http://thetechrism.com/downgrade-lollipop-kitkat-nexus/
You can't do it without doing some sort factory image/reset. Google has not officially distributed version of KitKat, however. So you'd have to use third party.

You can find the easiest tutorial to downgrade your device here : Downgrade Lollipop to KitKat
You have to wipe/ factory reset the device and flash the Factory Images to downgrade the Android version.


text:
Exporting progress from Google Play Games to iOS Game Center
I used Google Play Games to connect to Despicable Me: Minion Rush!. Is there any way to export my progress to the same game on iOS (which can be connected to iOS Game Center)?

Apparently, exporting progress from Google Play Games to iOS Game Center is possible if the game can also connect to Facebook:

On your Android device (where the game progress is located), log in to Facebook (see screenshot below)
On your iPhone device,  log in to Facebook, and it will retrieve all game information.

If I have 2 Android Devices. Can I transfer the progress from one device to the other using the google account ?


text:
Is It Possible To Completely Swap Storages On Kitkat 4.4.2?
I'm using a rooted Samsung SM-G313HZ Galaxy V device with Android Kitkat 4.4.2 OS. Is it possible to completely swap storages on my device so that every single application and game will read their data on extSdCard by default like jelly bean does? In simple words, /storage/emulated/0 is /storage/extSdCard and /storage/extSdCard is /storage/emulated/0 like on the image i attached.

I have a noname MT6572 tablet with Android 4.2.2, rooted, and I've figured out the trick: I've changed mount point directory names in the fstab.
The file is: /system/etc/vold.fstab, original version:
dev_mount sdcard /storage/sdcard0 emmc@fat /devices/platform/goldfish_mmc.0 /devices/platform/mtk-msdc.0/mmc_host
dev_mount sdcard2 /storage/sdcard1 auto /devices/platform/goldfish_mmc.1 /devices/platform/mtk-msdc.1/mmc_host

The modified version:
dev_mount sdcard /storage/sdcard1 emmc@fat /devices/platform/goldfish_mmc.0 /devices/platform/mtk-msdc.0/mmc_host
dev_mount sdcard2 /storage/sdcard0 auto /devices/platform/goldfish_mmc.1 /devices/platform/mtk-msdc.1/mmc_host

As you can see, I've only swapped /storage/sdcard1 and /storage/sdcard0, then rebooted.
I'm not 100% sure, probably Kitkat has different startup mechanism.
Caution: make backup! Move all your file editing applications to internal storage, so if something goes wrong, and you found yourself without any storage mounted, you can restore or repair it with apps launched from internal storage.


text:
Moto 360 Allow Wear Debugging
I have enabled UDB Debugging for my moto 360, but when I connect it to my computer, I don't get the "Allow Wear Debugging?" dialog.
How can I get this to show up?

I'm not super familiar with this, but I was under the impression that if you've enabled the developer options and your device and PC have exchanged keys per your initial authorization, it won't prompt and will simply work.

First of all become a developer on Moto 360 and enable Debugging.

Launch Settings
Select About
Tap on Build number until you become a developer :-)
Above will enable Developer options in Settings on your Moto 360

Enable ADB debugging and Debug over Bluetooth.

Under Developer options enable ADB debugging and Debug over Bluetooth
Launch Android Wear on your phone/tablet
Press settings (gear) icon
Turn on toggle button Debugging over Bluetooth
Connect your phone via USB and make sure USB debugging is enabled
Run adb devices from the command line.
If device called “localhost:4444” is listed, you are already paired and can continue at step 13.
From command line run adb forward tcp:4444 localabstract:/adb-hub then run adb connect localhost:4444
Launch Android Studio. When you launch your app your device should be available in the list for debugging in Choose device dialog under Choose a running device checkbox.

Hope this helps.

Juan José Melero Gómez
Suggested  following note to step 12.
Sometimes the terminal could return the following error message after executing the second command:
unable to connect to localhost:4444: cannot connect to localhost:4444 no connection could be made because the target machine actively refused it (10061).
In such case adb connect 127.0.0.1:4444 will do instead.

Just an update to the above.
Google has removed the "Debugging over Bluetooth" option from the Wear OS app some time in 2021.
If you need to enable this feature, downgrade to an older version. I had success with https://www.apkmirror.com/apk/google-inc/android-wear/android-wear-2-36-0-318474873-gms-release/

For some reason it only worked when my phone (Moto G5s) was in "charge only" mode when connected via USB. As soon as I changed it to "file exchange" the connection broke and ADB refused to connect to the smartwatch. After switching the phone back to "charge only" and restarting the adb console I could connect again using "adb connect 127.0.0.1:4444"


text:
How do I get the maximum video compatibility on my Android device?
I use miniDLNA to stream videos from my Ubuntu computer to my Galaxy tablet running Android 4.4 and BubbleUPNP.
Some video files don't play at all. Some play the video, but no sound. It doesn't seem to be just a matter of file format. Sometimes, for example, some .MKV files will play fine, and others wont. Some .AVI files work, and others don't.
All the video files play on my computer without any problem, so I assume it's just a matter of some codecs not being available on my Android device. Or something to do with compatibility.
Is there a way I can make my Android device able to play a wider variety of formats, if not all video formats?

Video format supported on the device can be verified by using AnTuTu Video Tester app. It shows supported format with resolution, audio and video encoding, and result of the playback.

Tablet upgraded to Android 4.4.4, and now this is no longer an issue. Videos play smoother and faster over my local network.

This is almost certainly a codec problem, there are two ends you could  come at this from, either the tablet or the computer.
What video playing apps are you using on your tablet just the built in one, or have you installed any additional apps?
If you haven't tried installing any other video playing apps on your tablet, then try one or two of these. You'll find that they should support a lot more video formats than your built-in player:

MX Player
Moboplayer
VLC

Do you need to use miniDLNA on your computer, or can you use something with transcoding support that can convert the videos into formats that your tablet can play "on the fly"?
Alternatively, there are DLNA compatible servers that you can install on your PC that will transcode your videos to compatible formats as they stream them, I've used Plex Media Server (which as well as being DLNA compliant, also has an Android client to make the experience even easier and more pleasant than using DLNA) and I know people who use PS3Media Server for this too (despite the name it's not tied to PS3's these days).

Adding MX Player and Moboplayer seems to have helped. MX Player made me download an additional app from Google Play with extra codecs.


text:
Am I still visible to old contacts I have deleted long ago, when they intall whatsapp if they still have my number in their contacts?
I've had my mobile number 15+ years and have used it for work purposes as well as private over this time, even though its my personal number.
Could someone clarify - if anyone from the distant past who still had my number in their contacts then installed WhatsApp - would they now be able to see me in their WhatsApp contacts even though I deleted them as a contacts long before installing the App?

If they have your old number then they are still able to see your old profile.
You are not deleting your profile by simply uninstalling WhatsApp, you need to properly delete your profile by going into Settings->Account and select Delete my account.
Then your old profile is deleted and nobody will be able to see it or send any messages to it.

I don't have an old profile and haven't uninstalled WhatsApp - perhaps you misunderstood. WhatsApp wasn't around when I originally entered the old contact numbers in my address book.  But, if I was still in their contacts and they recently installed WhatsApp - would they see me as one of their contacts there, even though they had been deleted from my contacts years ago before I ever installed WhatsApp?  Should I be able to see every person who has me as their contact on WhatsApp anyway?

You see every contact you have the number of, regardless of them having yours AFAIK.

But am I showing as a contact in their WhatsApp if they kept my number in their address book?

Yes you do. If they do not remove your number, they always see you.


text:
Choose whether to connect to a Wifi network by more than just SSID
I know of 2 networks with the same SSID but different credentials (via a "sign in to network" webpage). I only have an account for one of them (and it happens to be somewhere with little-to-no 3G/4G so I can't just turn this network off completely).  Of course, when it connects to the network I can't use, it turns off my 4G.
I've seen this answer suggesting it could be done using tasker.  I don't currently have tasker but could buy it for this.  But I have a few issues with that approach:

I don't really want my GPS polling all the time for (mainly) battery life reasons.
So: Will tasker do this with network-based locations (especially as one location has poor mobile signal - the same place is inside a big building so GPS might not work)?
The answer I've linked to wasn't accepted despite seeming to answer the question pretty well, and has no upvotes.  It doesn't make me confident it would work.

I'm on a non-rooted Xperia Z3 compact, bought from Amazon so it should be Sony's stock Lollipop.

In case the hesitancy is caused because of the app being paid, you can consider the 7-day full trial version of Tasker.

@Firelord thank you. 7 days starting on the right day might do the trick.

And you can extend it in 7-day intervals (export config, uninstall, reinstall, import config – the dev himself says so). As for GPS: use other conditions as e.g. "WiFi near" (which should match perfectly as you only want that task to fire when the specific WiFi is in reach – no need if it is e.g. switched off ;)

@Izzy I used to do that with DOS shareware but never thought of trying it on Android assuming the play store would make it more hassle than it's worth.  Plus I don't mind paying for stuff I use, but if the dev says it's OK...

@ChrisH if you feel you really need that to evaluate you can do so (sometimes one starts checking, then lacks time, and then trial is over before one finished checking). Once you've decided you like it, you should of course buy it :)

@Izzy, if I use Wifi near (with a MAC address) to switch off WiFi, how will it know when the WiFi is no longer near and turn it back on again?  Does it allow WiFi polling with WiFi off?  I tried this morning with the task set to "wifi disconnect" with no success, so "wifi off" has to be the way to go

Combine conditions then. In this case, I'd use either "CellID" (collect IDs of towers, uses no extra power as it needs those anyway for calls/mobile-data) or "network location", and "WiFi near" as second condition. Tasker is intelligent enough to then check WiFi only if the other condition is met. You also could have a second profile turning your WiFi on if {location} is met.

The solution was indeed to use tasker but there were some subtleties.

WiFi off doesn't appear to work if the "sign in to network" alert is active.
This can be solved by using a task consisting of WiFi disconnect followed by WiFi off.
Such a two-part task doesn't undo itself when the profile is no longer active, so an exit task is needed to turn the WiFi back on.

"Cell near" seems to work better than "Network location", which can sometimes jump by more than the distance between the 2 locations I'm worried about (~1km) due to some strange singal effects.

I've put in a self-answer as the subleties may be handy for others - but credit should really go to @Izzy for getting me over the first major hurdles.

Note that as of 2021 this will no longer work on a non-rooted device.  Google don't let you automate control of your WiFi any more (I did indeed pay for Tasker, and now use it for something comparable on long bike rides - a battery-saving process that sets aeroplane mode for 14 minutes, connects for 1 minute, and loops)

You can use the free 'WLAN' App from AVM. With it you can choose your hotspot connected to. But it does not work automatically.

I was really looking for an automated solution. The many WiFi switching apps would mean manual switching several times a day and as I want to maintain data connectivity wherever possible the chances of forgetting are too high.


text:
Using SD card as internal storage and migrate date
I read this question, but I want to update the question.
Now with Android 6.0 we have the option to format the SD card as internal storage, and that's what I did. I also clicked that "Migrate data" option that moves pictures, music and such to the SD card storage.

However, I downloaded more music and now the internal storage is full. And the "Migrate data" option now tries to move data from the SD to the internal memory. So apparently you can only use it once #fail
The apps that consume the most space are precisely apps containing media that could go into the SD card (red arrows). Others are games that even allow the user to move the app to the SD card (blue arrow). For some weird reason, it always fails with a snack bar saying "internal error occurred".

Should I format the SD card as external? I'll never remove it, so this "format as internal memory" option seemed perfect.
How can I migrate all this media/data back to the SD card?

Am I doing something wrong here? I have a Moto G 2nd gen.

Im pretty sure you can go into google play music, head to settings, and set your sd as storage. It should move your music over.

OK, I think I found out the best setup.

Format your SD card as internal memory.
Go to Settings > Storage > Internal and open each app. Some apps have a "change" button. Press it to move the app into the SD card.
Finally go to Settings > Storage > Internal and on the right corner press Migrate data.

At this point, you did all you could.

For some reason, not at apps offer this option. Any idea why?

@DiAlex, I am doing one app where data need to move the datas from internal storage to external storage while transfer the app. But it is unable to move the data. I have followed your suggestions. But I am unable to see the third point for migration of data. Any idea to solve this issue?

Sorry, I don't know how to solve it. I'm using Android 6.0 on a Moto G (2nd gen) and it works.

You will need to format the SD as removable storage for it to work as you describe. The option as described by Dan is not available with your SD formatted for internal use.
I did read a post somewhere that suggests Google Play Music will have a fix this week but hard to say for sure.
In my opinion this feature either doesn't work as intended or the Google Play apps haven't been updated for this feature despite marshmallow being out for 6? months already.
Note: I have just installed the new update 22/4/2016 and you can now select the SD storage, so this is now fixed!

Thanks. But before I can format the SD card I need to move all of its contents back to internal storage, otherwise I'll lose data. However, I don't have enough space, and we're back at the OP :(


text:
Can I hide the time on the Cyanogenmod 7 Lockscreen?
I've flashed CM7 onto my phone, and am wondering if there is a way to hide the clock. The only way I see is the Widget Layout setting to Default/Hidden/Centered. But this hides ALL text on the lock screen, I want to hide ONLY the clock (because it is in the statusbar anyway), and NOT hide the next alarm, next calendar appointment, battery level, etc.
Or, as an alternative, if there is someway to make the font for the clock a LOT smaller.
The reason I want to do this, is because I am using Contact Owner to display lost phone text on the lock screen, but with that giant clock up top, it pushes the owner info underneath/behind the unlock controls.
Also, setting the Widget Layout to hidden hides the owner info as well, which kinda defeats the purpose.
UPDATE: With a little help from this question, I'm using Cyanogenmod's own owner info ability, but it still suffers from the same problem.
BTW, I'm running on a Galaxy S Captivate.

Well, I didn't find a way to hide it; but switched to using WidgetLocker for my lock screen and just disabled CM's.