Is there some utility available that will display all the files on an android phone, including local memory and sd card, even if the phone is not rooted?
It could be either some Android app or some PC-based utility that would display the files on a phone connected via USB.
Also, for those of you who develop on android phones, do you do your development and testing on rooted phones?
There's the Android Device Monitor that ships with the SDK. It's integrated into Android Studio and Eclipse.
Let's you inspect the file system and a lot more. I've only ever used it with simulators. Non rooted phones won't display their /data/data directory, from the ones I have. You'd have to root them for that, I believe.
Related
I have seen many questions about the usb, the host, the permissions, ... I never read a solution.
I have an Android/Windows tablet with a 'big' USB A port. I prefer to use the tablet with Android OS for many reasons. I can connect an Android phone with a standard USB cable. When the connection is made, the application Gallery is automatically running on the tablet and I can see the camera files stored on the phone. And I can only import them with this app.
This is a good feature but I would like to create a small app to copy the files instead of using Gallery. With java, I can have access to paths like dev/bus/usb/xxx but nothing else.
When I use es explorer, I can see the same paths but they are not shown as folders. They are shown as files and, if I select one of them, I get a choice between "open as text file", ...
So, how to have access to the real folders of the phone?
The app Gallery is able to do it. I think we should do the same even if the tablet is not rooted.
If I cannot do it, the only solution for me is using the Windows OS installed on the tablet. It seems it's easier to have access to a device than using Android. That's a bit strange, isn't it? But I prefer to use Android because the system is more appropriate for the tablet which has a small RAM.
I'm going to run Android app on Chromebook directly to access connected usb devices, not from ARC Welder.
I want to use ES File Explorer to access my usb devices.
Plugin a USB OTG wire and run ES File Explorer on normal Android devices, it can detect connected USB devices as expected.
However, if I run the same ES File Explorer Android app on Chromebook, it can not detect connected USB devices. Looks in this case, Chromebook intercepts USB low level data packages. Because I can use Chromebook built-in File Explorer(which is not an Android app) to access connected USB devices.
By the way, I'm using USB storage to do the test.
So my question is, how can an Android app access connected USB devices on Chromebook? Is current behavior by design? Is there any plan to add USB support for Android apps in the future?
Based on the following Chromium bug report:
https://bugs.chromium.org/p/chromium/issues/detail?id=660189
Summary:
It appears that access to external/USB storage (read and write) for container based Android Apps on ChromeOS (container ARC) is a known issue, appears to be on the roadmap, but behind other priorities.
Update 2017-11-30:
The Chromium team has implemented USB On-The-Go access for the SD card on ChromeOS 62 (Chromium M-61?) or higher. What this means is that developers who expect their apps to work with the SD card as if it was under the battery in their phone will be disappointed. This is due to the fact that a 'hot swappable' SD card such as those found on a Chromebook isn't considered Adoptable Storage by the Android Framework.
Additionally if you want to use the MediaStore APIs to access it, you are still out of luck as the Android Framework does not support access to removable hardware. The Chromium team is aware and considering options:
Old issue ticket: https://bugs.chromium.org/p/chromium/issues/detail?id=789045&desc=3
So what to do?
Use: Android Storage Access Framework
See this Commonware's post on Removable Storage for further details.
Update 2019-09-04
ChromeOS 72 onward is supporting Android's MediaStore API, and direct '/storage' support for accessing content on SD card.
See: https://bugs.chromium.org/p/chromium/issues/detail?id=789045#c98
Issue ticket for supporting Android's Adoptable Storage:
https://bugs.chromium.org/p/chromium/issues/detail?id=917451
It may seem strange, but I wonder is an android app able to make the SD Card inside the device windows bootable? I thought of making the SD bootable and write ultimatebootcd to it. I did it through windows, but it would be so great if android can do it!
To make the SD card bootable, you have to modify the boot sector of the card. This can not be done from a standard Android application. If the Android device is rooted, it can almost certainly be done from a native Linux program, or an NDK program.
If the device is not rooted, you can probably not do what you want. As Chris Stratton commented, if the card is already made bootable, you could probably then change for instance what OS is booted up and how.
Say, there is startup code which loads and boots an OS, then you can change the configuration file for the bootloader. A starter: http://www.syslinux.org/wiki/index.php/Boot_an_Iso_image
I used Rufus and installed a syslynux on the SdCard from a PC running window 10.then I put the card back into the Moto phone. It's receiving files that I have moved from the internal storage to the card how ever I have not a chance to find out whether they Will open up In the PC or not.
I've built apps that connect to a server. But this time a client has asked for an app with no need to connect to a server to update content (images,videos,text).
It will be Android tablet to a Windows laptop via USB. It will be for end user no dragging and dropping into specific folders using USB debugging.
I was thinking I may need to build an app for the laptop (content manager) and then the app for tablet.
Is a framework out there that could jump start this?
Thanks
You can setup a batch script that runs some adb commands when the tablet is plugged in. Then you could use 'adb push' to push some update files onto the tablet, and the app could check for these files when it runs and take appropriate actions with them.
This would probably be best as a desktop application (not an Android app). The tablet's SDCard is already mountable as a USB mass storage device, so why not just have a desktop application mount that drive, move the files into the correct folder, and eject the drive? Then when the tablet app is opened, the new files are there.
I am developing an application that has the following requirement:
When the device is connected to a computer via USB, the user should be
able to use Windows Explorer to drag files into and out of the
application directory.
The application will consume some of these files and produces others
which should be able to be copied back to the computer.
The target device does not have an external storage device (for
example an SD Card).
The directories that the files will be stored in should be accessible
whilst the application is running.
I've looked into the data storage page in the android documentation, but none of the methods stated there seem to do what I require.
Alternatively, is there a way to select the computer when the application is running and 'send' files via USB to the computer? How about for 'receiving' files?
What is the best way to fulfill this requirement?
When the device is connected to a computer via USB, the user should be able to use Windows Explorer to drag files into and out of the application directory.
If "the application directory" refers to a spot on external storage, this is possible.
The application will consume some of these files and produces others which should be able to be copied back to the computer.
If this is supposed to happen simultaneously, the device must be running Android 3.x or higher. Android 1.x and 2.x did not support simultaneous access to external storage.
The target device does not have an external storage device (for example an SD Card).
It needs to have something designated as "external storage". That does not have to be removable storage. On Android 3.x and 4.x, it is usually just a part of on-board flash that was designated to be accessible as external storage. In Android terms, "external storage" means "can be accessed by a host computer using USB and by all applications on the device as well".
The directories that the files will be stored in should be accessible whilst the application is running.
Again, this requires Android 3.x or higher. If this is a custom device, that most likely means you are going to need to use the recently-released Android 4.0 source code.
Alternatively, is there a way to select the computer when the application is running and 'send' files via USB to the computer? How about for 'receiving' files?
No and no, respectively.
What your going to want to do is use Environment.getExternalStorageDirectory. Even if there is no sd card, most android devices partition a part of the on board memory to be used as external storage.