Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
Hi, I faced the same problem of finding external storage devices connected to the user. My workaround was, I noticed that the LOST.DIR gets created for all storage devices that are connected to the android device. So I am searching for the locations for LOST.DIR in the filesystem starting at root and skipping few locations like not searching in /proc, /system, /d. I ignore the LOST.DIR in the / directory. So far this liiks to me like a reliable way to find mount points for external storage. Since Android 3.2, the permissions however are screwed up. Srikanth On Thursday, April 5, 2012 4:20:31 AM UTC-5, Nikolay Elenkov wrote: 2012/4/5 Kostya Vasilyev : Oh, I see. Rather than coming up with an API to enumerate and access multiple storage locations, the entire feature was made explicitly unsupported for third-party applications. Nice. Nice indeed. To add more unsubstantiated rumours, it appear that there are actually environment variables that store the mount point(s) of secondary SD cards. Those have been seen in the wild: EXTERNAL_STORAGE_ALL EXTERNAL_STORAGE SECOND_VOLUME_STORAGE THIRD_VOLUME_STORAGE System.getenv(EXTERNAL_STORAGE_ALL) returns something like this on *some* devices: /mnt/sdcard:/mnt/usbdisk:/mnt/ext_card So you'd have to check all and/or parse /proc/mounts, and if you have the magic permission, you might be able to use the secondary, etc. SD card. In short, save yourself the trouble and don't bother :) Using Dropbox, or Google Drive(?), or whatever will give you less headaches. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
That hasn't stopped many devices from making the removable storage their primary one. But if this is by design, I'd like to link to the design philosophy document. Maybe I can send that to the users. I can't find anything official, though. If the other devices are going to be unwriteable 90% of the time, I can't spend much more time on it. I find it hard to believe that devices exist that treat removable storage as primary. If your app/users need to create very large files, you need devices with huge amounts of internal storage or you need to work out an alternate mechanism such as cloud storage. Handheld portable devices are not general purpose computers (yet). You should not expect to use them as one. I do no subscribe to that philosophy. Compared to computers of not very many years ago, 2Gig or 8gig is already lots of space. If there is another card slot, users are going to put a 32gig SD card. In practice, it is not removed all that often. It is only natural that users expect apps to be able to use that space. Then they find out some can and some can't. At the same rate, the storage demand of a typical user has gone up. Today we have a need to store gigabytes of media files (music, pictures and videos) which did not exist many years ago so 8 gigs is not a lot of space anymore. Did we have 8 megapixel cameras in devices or ability to view HD videos a few years ago? I agree that it would be great to have ability to discover the removable storage in a sane and predictable manner but as I said, it looks like the platform wants to treat the removable storage as a transient readonly storage for media files. I understand by now that I don't have any say, but this idea of tight, arbitrary control of what content a user puts on their own storage volume seems more Apple like than Android like. Apple users don't, in general, have file access to their own volume, so Android *could* be very competitive in this area. But at present, we are frustrating users enough that they are crawling back to iOS. Funny you mention iOS in this context when you don't even have *any* removable storage in devices running iOS. So what is the reason the users are crawling back to iOS? What is it buying them? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Tuesday, April 17, 2012 7:44:34 PM UTC-4, Kostya Vasilyev wrote: It also hasn't prevented from existing a few hundred million devices with removable, writable, user controllable and understandable, officially supported external microsd memory cards. Yes, I'm talking about phones running Android 1.* through 2.*. Does anyone remember those? Incidentally, they still account for something like 95% of all current Android devices. I am not sure what you mean here. How do you discover the removable storage through the pre-3.x API in the first place? And how are you going to make sure that the user is not going to yank out the sd card in the middle of a write operation possibly corrupting the entire filesystem? When you say officially supported external sd card, what kind of support are you implying? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On 04/18/2012 07:54 PM, Nadeem Hasan wrote: On Tuesday, April 17, 2012 7:44:34 PM UTC-4, Kostya Vasilyev wrote: It also hasn't prevented from existing a few hundred million devices with removable, writable, user controllable and understandable, officially supported external microsd memory cards. Yes, I'm talking about phones running Android 1.* through 2.*. Does anyone remember those? Incidentally, they still account for something like 95% of all current Android devices. I am not sure what you mean here. I mean just what I wrote. There is a few hundred million devices that have removable storage that's: - accessible to third party application for writing - is understood by users - is discoverable - has received attention and improvements from the Android team (the switch to MTP, the recent Environment methods that let you pick file path based on its type...) How do you discover the removable storage through the pre-3.x API in the first place? Environment.getExternalStorageDirectory() has been there since API level 1. And how are you going to make sure that the user is not going to yank out the sd card in the middle of a write operation possibly corrupting the entire filesystem? On most phone type devices, the memory card can't be yanked without removing the battery. No application can be in the middle of a write operation when the battery has been removed. On some devices there is a menu command to unmout the memory card. Other than that, it's the user's problem, not the application's. There is a way to corrupt the file system of a desktop computer by throwing it out the window or dousing it with gasoline and burning it. This does not prevent desktop computers from supporting multiple storage volumes and APIs to enumerate them. And it's beside the point anway. I see you trying to paint removable storage as bad, inherently laden with technical issues, and therefore argue that us, application developers, should just forget it exists. From my experience, that's not how users see it. They pay for devices with removable storage (in addition to internal external memory and internal internal memory) and then would like to use what they paid for - including the ability for third party applications to save data there. I've gotten requests for exacty this, and have implemented a directory picker, but now seeing that it may not be enough, and that devices and firmwares from various manufacturers can arbitrarily restrict write access, I'm worried. When you say officially supported external sd card, what kind of support are you implying? Is Environment.getExternalStorageDirectory() that's been there since API 1 official enough? To conclude, I do hope that this might be fixed in a future Android release. Keeping my fingers crossed :) -- K -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
Environment.getExternalStorageDirectory() returns the non-removable external memory location. But I see what you mean, on devices with only removable external memory, it could return that location. However, the point remains that the framework only considers one external storage as general purpose R/W storage. Let me make it clear, I am not against the ability for the API to return all the available external storage locations. I am merely pointing out the possible rationale behind the decisions in the system. I think the same rationales were behind the swith to MTP access in ICS in lieu of USB mass storage access. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Wednesday, April 18, 2012 8:46:33 AM UTC-7, Nadeem Hasan wrote: That hasn't stopped many devices from making the removable storage their primary one. But if this is by design, I'd like to link to the design philosophy document. Maybe I can send that to the users. I can't find anything official, though. If the other devices are going to be unwriteable 90% of the time, I can't spend much more time on it. I find it hard to believe that devices exist that treat removable storage as primary. I am not talking about removable as in a thumb drive, more like replaceable/upgradable. Most 2x and earlier phones allowed you to remove the one and only storage card, possibly by opening the battery cover. Droid Incredible had a removable and non removable storage, and chose the removable storage as their primary. Dumb decision, yes, but they are not the only ones. If your app/users need to create very large files, you need devices with huge amounts of internal storage or you need to work out an alternate mechanism such as cloud storage. Handheld portable devices are not general purpose computers (yet). You should not expect to use them as one. I do no subscribe to that philosophy. Compared to computers of not very many years ago, 2Gig or 8gig is already lots of space. If there is another card slot, users are going to put a 32gig SD card. In practice, it is not removed all that often. It is only natural that users expect apps to be able to use that space. Then they find out some can and some can't. At the same rate, the storage demand of a typical user has gone up. Today we have a need to store gigabytes of media files (music, pictures and videos) which did not exist many years ago so 8 gigs is not a lot of space anymore. Did we have 8 megapixel cameras in devices or ability to view HD videos a few years ago? No argument with that. In truth, my users would like to store 32 terabytes. But 32 gig vs 8 gig makes a difference to them. I agree that it would be great to have ability to discover the removable storage in a sane and predictable manner but as I said, it looks like the platform wants to treat the removable storage as a transient readonly storage for media files. I still can't find official info on that and whether they should blame Android or the manufacturer, but it appears that is the trend. I understand by now that I don't have any say, but this idea of tight, arbitrary control of what content a user puts on their own storage volume seems more Apple like than Android like. Apple users don't, in general, have file access to their own volume, so Android *could* be very competitive in this area. But at present, we are frustrating users enough that they are crawling back to iOS. Funny you mention iOS in this context when you don't even have *any* removable storage in devices running iOS. So what is the reason the users are crawling back to iOS? What is it buying them? I am in no way saying that said users are being logical. Just repeating what I've heard from conversations and a dozen forums around the internet. On the other hand, if I bought an Android tablet, thinking I can add a 32gig sd card and use it for whatever I want, I might feel betrayed to find out that I can't use the space for whatever I want. Furthermore, the restrictions were never explained before the sale. I'd take it back to the store. For some, they might go back to Apple, who never promised them external storage and never promised them they could use space for whatever they want and certainly never made them type anything like /mnt/storage/ext-storages/ext_sdcard1 into an app. Nathan -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
Seems to me like what has happened is that manufacturers have cooped a feature that was supposed to be for removable storage to support larger non-removable capacity (a simple way to upsell). In the process, we have found ourselves with partitioned internal storage (to allow USB file transfer) and the current mess. I still find it interesting that the 3.2 documentation should mention using MTP to read cards tho. 2012/4/18 Nadeem Hasan nha...@nadmm.com Environment.**getExternalStorageDirectory() returns the non-removable external memory location. But I see what you mean, on devices with only removable external memory, it could return that location. However, the point remains that the framework only considers one external storage as general purpose R/W storage. Let me make it clear, I am not against the ability for the API to return all the available external storage locations. I am merely pointing out the possible rationale behind the decisions in the system. I think the same rationales were behind the swith to MTP access in ICS in lieu of USB mass storage access. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On 04/18/2012 08:41 PM, Nadeem Hasan wrote: Environment.getExternalStorageDirectory() returns the non-removable external memory location. On tablets that have both internal external and external external storage it does. On tablets and devices that only have internal external storage it does. But on a few hundred million phones with Android 2.* it returns the removable memory card path - except for devices that have both internal external and external external storage, like some tablets, where it acts like you said. But I see what you mean, on devices with only removable external memory, it could return that location. And it does, on phone devices that don't have internal external storage. It got messy with devices that have a large built-in data partition that's separate from the internal internal storage that all devices have. The first was the HTC... oh something or other (I forget). Then the Samsung Galaxy S (GT-i9000). On both of these devices, Envrionment.getExternalStorageDiretly() returns the path to this internal external storage. The location of the external external storage is different on these, and as it happened, there was no appropriate API in Android two return this. Samsung did the smarter thing (of the two) by mounting the external external memory card as /sdcard/sd, so it was a subdirectory of the path returned by Environment.getExternalStorageDirectory(). But at this point, there are more and more devices (tablets, mostly) with both internal external and external external memory, and the APIs do not address this at all. And then there is the permission issue. However, the point remains that the framework only considers one external storage as general purpose R/W storage. Let me make it clear, I am not against the ability for the API to return all the available external storage locations. I am merely pointing out the possible rationale behind the decisions in the system. I think the same rationales were behind the swith to MTP access in ICS in lieu of USB mass storage access. As far as I can tell, large part of the rationale behind the switch from USB mass storage to MTP was for Android to retain control over the file system at all times. Whatever the rationale was, MTP is one thing, MediaStore is another, but I'm just after being able to present the user with a volume/mount point picker and to be sure it can be written to. -- K -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Tuesday, April 17, 2012 4:19:19 PM UTC-7, Dianne Hackborn wrote: On Tue, Apr 17, 2012 at 3:09 PM, Nathan wrote: On Monday, April 16, 2012 7:07:33 PM UTC-7, Dianne Hackborn wrote: On Sun, Apr 15, 2012 at 8:56 AM, digi owl wrote: looking at the 3.2 platform API changes, it appears that Google wants developers to access SD cards via either MeidaStore or the MTP API: https://developer.android.com/**sdk/android-3.2.htmlhttps://developer.android.com/sdk/android-3.2.html https://developer.android.com/**reference/android/mtp/package-** summary.htmlhttps://developer.android.com/reference/android/mtp/package-summary.html https://developer.android.com/**reference/android/provider/** MediaStore.htmlhttps://developer.android.com/reference/android/provider/MediaStore.html I don't know I'd include MTP in this, but yes for apps MediaStore allows you to query across whatever storage is being aggregated by the device. Note that for everything except the primary external storage partition, you should expect to only have write access to the files. Did you mean to say that we should assume only *read access* to the files? Is that because of some platform guidance, because of the manufacturers' philosophy, or neither, just the way it is? Gah, very sorry, yes I meant READ access. And is the READ access due to a decision by the manufacturer, or is it the Android standard as of 3.2? I just need to know what to tell my customers. Nathan -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Wednesday, April 18, 2012 12:55:00 PM UTC-4, digi owl wrote: Seems to me like what has happened is that manufacturers have cooped a feature that was supposed to be for removable storage to support larger non-removable capacity (a simple way to upsell). In the process, we have found ourselves with partitioned internal storage (to allow USB file transfer) and the current mess. I still find it interesting that the 3.2 documentation should mention using MTP to read cards tho. I think you are right. I overlooked this possibility and it makes a lot of sense. My entire reasoning that the removable storage was designed for media files only was not correct. There was only supposed to be one external storage location and the API was designed that way but the device manufacturers have changed the game by creating this removable and non-removable distinction. I think the future Android API needs to take this into account but we would still be left with millions of devices running the current versions of Android with no decent solution. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On 04/18/2012 09:35 PM, Nadeem Hasan wrote: On Wednesday, April 18, 2012 12:55:00 PM UTC-4, digi owl wrote: Seems to me like what has happened is that manufacturers have cooped a feature that was supposed to be for removable storage to support larger non-removable capacity (a simple way to upsell). In the process, we have found ourselves with partitioned internal storage (to allow USB file transfer) and the current mess. I still find it interesting that the 3.2 documentation should mention using MTP to read cards tho. I think you are right. I overlooked this possibility and it makes a lot of sense. My entire reasoning that the removable storage was designed for media files only was not correct. There was only supposed to be one external storage location and the API was designed that way but the device manufacturers have changed the game by creating this removable and non-removable distinction. Interesting reference 1: https://groups.google.com/d/msg/android-developers/LUcuw06JNe0/QiDiXSBKb9cJ I think the future Android API needs to take this into account but we would still be left with millions of devices running the current versions of Android with no decent solution. Interesting reference 2: https://groups.google.com/d/msg/android-developers/LUcuw06JNe0/ufWOEV4OyusJ -- K -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
Thanks. Very interesting indeed. I see that there is a long history with this. Anyway I see a direct contradiction is Dianne's responses: *The current CDD requires that the API return the directory of the primary external storage, that is the one you can count on always being there, that is the internal storage partition of such devices. * * * and this *...it makes perfect sense for the original device configurations where all media storage was on the external SD card. When manufacturers started putting that storage into the internal device, the name became unfortunate. * The CDD requires that external storage be non-removable and at the same time the API expected it to be removable? Looks like this thing was very poorly thought out from the beginning the Android team and made worse by device manufacturers. Also IMHO, the reference to StorageManager is a red herring. It deals with application specific optionally encrypted filesystem not the general purpose R/W storage being discussed. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
I think this behavior does make some sense. The non-removable external storage is what the platform expects the apps to use to read/write arbitrary files. So this location is made visible to the apps via the Environment API. The removable external storage is expected to be used to swap in/out media files by the users. As such, applications don't have direct access to it but the media scanner does and makes them available to users via the media player applications. The removable external storage by design is not made available to applications for general purpose storage simply because it's not expected to be present all the time and is explicitly intended for read-only media files. If your app/users need to create very large files, you need devices with huge amounts of internal storage or you need to work out an alternate mechanism such as cloud storage. Handheld portable devices are not general purpose computers (yet). You should not expect to use them as one. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Monday, April 16, 2012 7:05:58 PM UTC-7, Dianne Hackborn wrote: The current platform defines an single external storage location, which these days can be either a physical SD card, a physical partition on internal storage, or shared with internal storage, as reported by the various methods on Environment. Yes, I know that. It has only differed from the reality of hardware devices on the market for about two years. Is there any reason that the platform will never support something like GetStorageDirectories() (plural)? Nathan -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Monday, April 16, 2012 7:07:33 PM UTC-7, Dianne Hackborn wrote: On Sun, Apr 15, 2012 at 8:56 AM, digi owl wrote: looking at the 3.2 platform API changes, it appears that Google wants developers to access SD cards via either MeidaStore or the MTP API: https://developer.android.com/sdk/android-3.2.html https://developer.android.com/reference/android/mtp/package-summary.html https://developer.android.com/reference/android/provider/MediaStore.html I don't know I'd include MTP in this, but yes for apps MediaStore allows you to query across whatever storage is being aggregated by the device. Note that for everything except the primary external storage partition, you should expect to only have write access to the files. I haven't seen yet where Media store will let you query for storage volumes and their attributes, but I will look. Did you mean to say that we should assume only *read access* to the files? Is that because of some platform guidance, because of the manufacturers' philosophy, or neither, just the way it is? Any suggestions for doing research on what storage volumes on which devices have which restrictions? I only ask this because the end users certainly don't know, they just ask why can't you use this storage volume? Other apps are. And manufacturers aren't talking. Nathan -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Tuesday, April 17, 2012 7:39:32 AM UTC-7, Nadeem Hasan wrote: The removable external storage by design is not made available to applications for general purpose storage simply because it's not expected to be present all the time and is explicitly intended for read-only media files. That hasn't stopped many devices from making the removable storage their primary one. But if this is by design, I'd like to link to the design philosophy document. Maybe I can send that to the users. I can't find anything official, though. If the other devices are going to be unwriteable 90% of the time, I can't spend much more time on it. If your app/users need to create very large files, you need devices with huge amounts of internal storage or you need to work out an alternate mechanism such as cloud storage. Handheld portable devices are not general purpose computers (yet). You should not expect to use them as one. I do no subscribe to that philosophy. Compared to computers of not very many years ago, 2Gig or 8gig is already lots of space. If there is another card slot, users are going to put a 32gig SD card. In practice, it is not removed all that often. It is only natural that users expect apps to be able to use that space. Then they find out some can and some can't. I understand by now that I don't have any say, but this idea of tight, arbitrary control of what content a user puts on their own storage volume seems more Apple like than Android like. Apple users don't, in general, have file access to their own volume, so Android *could* be very competitive in this area. But at present, we are frustrating users enough that they are crawling back to iOS. Nathan -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Tue, Apr 17, 2012 at 2:55 PM, Nathan nathan.d.mel...@gmail.com wrote: Is there any reason that the platform will never support something like GetStorageDirectories() (plural)? Well, nobody has said that, so I don't see how I could give a reason for it. -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Tue, Apr 17, 2012 at 3:09 PM, Nathan nathan.d.mel...@gmail.com wrote: On Monday, April 16, 2012 7:07:33 PM UTC-7, Dianne Hackborn wrote: On Sun, Apr 15, 2012 at 8:56 AM, digi owl wrote: looking at the 3.2 platform API changes, it appears that Google wants developers to access SD cards via either MeidaStore or the MTP API: https://developer.android.com/**sdk/android-3.2.htmlhttps://developer.android.com/sdk/android-3.2.html https://developer.android.com/**reference/android/mtp/package-** summary.htmlhttps://developer.android.com/reference/android/mtp/package-summary.html https://developer.android.com/**reference/android/provider/** MediaStore.htmlhttps://developer.android.com/reference/android/provider/MediaStore.html I don't know I'd include MTP in this, but yes for apps MediaStore allows you to query across whatever storage is being aggregated by the device. Note that for everything except the primary external storage partition, you should expect to only have write access to the files. Did you mean to say that we should assume only *read access* to the files? Is that because of some platform guidance, because of the manufacturers' philosophy, or neither, just the way it is? Gah, very sorry, yes I meant READ access. -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
18.04.2012 3:17 пользователь Nathan nathan.d.mel...@gmail.com написал: On Tuesday, April 17, 2012 7:39:32 AM UTC-7, Nadeem Hasan wrote: The removable external storage by design is not made available to applications for general purpose storage simply because it's not expected to be present all the time and is explicitly intended for read-only media files. That hasn't stopped many devices from making the removable storage their primary one. It also hasn't prevented from existing a few hundred million devices with removable, writable, user controllable and understandable, officially supported external microsd memory cards. Yes, I'm talking about phones running Android 1.* through 2.*. Does anyone remember those? Incidentally, they still account for something like 95% of all current Android devices. If your app/users need to create very large files, you need devices with huge amounts of internal storage or you need to work out an alternate mechanism such as cloud storage. What if you're writing exactly this - a cloud based storage application? Or an email client (attachments)? Or a file manager? Do you tell your users who deliberately purchased a device that has both internal external memory as well as a memory card - no, you just can't save your files there? -- K -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Fri, Apr 13, 2012 at 11:00 PM, Zsolt Vasvari zvasv...@gmail.com wrote: It appears that no one on this forum has more insight into number 2. Darn. If Dianne hasn't chimed in, there is probably not much hope that you will get an answer. The current platform defines an single external storage location, which these days can be either a physical SD card, a physical partition on internal storage, or shared with internal storage, as reported by the various methods on Environment. -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Sun, Apr 15, 2012 at 8:56 AM, digi owl digi.night@gmail.com wrote: looking at the 3.2 platform API changes, it appears that Google wants developers to access SD cards via either MeidaStore or the MTP API: https://developer.android.com/sdk/android-3.2.html https://developer.android.com/reference/android/mtp/package-summary.html https://developer.android.com/reference/android/provider/MediaStore.html I don't know I'd include MTP in this, but yes for apps MediaStore allows you to query across whatever storage is being aggregated by the device. Note that for everything except the primary external storage partition, you should expect to only have write access to the files. -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
It appears that no one on this forum has more insight into number 2. Darn. If Dianne hasn't chimed in, there is probably not much hope that you will get an answer. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Thursday, April 12, 2012 10:22:57 PM UTC-7, Zsolt Vasvari wrote: I think you just need to stop calling the SD Card and call it External storage or something. It's really irrelevant what *I* call it. I can't control what the users call it, or even what the manufacturers call it. If it's not on the SD card, why do you care? I don't. But you've missed most of this thread, and that is the wrong question. The question is why do my customers care? They do. I get at least two inquiries a week, and more before I gave them this capability to switch. I think they care because they use my app to create a large (think several gigabytes) set of files. I don't force them to do this; they can choose to create a much smaller set of files. Not every app will this matter so much; but I'm not the only one. I think they care about this being the storage volume with the most space. They don't care as much which one is a card or internal storage, and they certainly don't care which volume is returned by GetExternalStorageDirectory, because they don't know. I did try leaving it at getExternalStorageDirectory(), and that still is the default. Then, after getting floods of questions about why dont you . . , I allowed people to set the path manually. Then, I would get questions, because noone knows what path to try and I don't either. But more recently, I am getting people who have made it through the arduous process of finding that path and it still doesn't work. Other apps can write there, the PC can write there, but I can't. ...And I am not exaggerating at all that they have become frustrated enough to buy an iphone/ipad. This is more a technical support issue than a programming question - unless there is a programming solution. At the least, I'd like to have a page of information for these people that says try this, then try this, and if it still doesn't work, talk to your manufacturer because I can only work on issues I can actually do something about. I'm just hoping for: 1. Ideas on helping users find their storage location. The environment variables mentioned in this thread might help. 2. Ideas on why or how often devices are locking out storage locations to third party apps, and is that coming from the manufacturer, the Android platform, or both? It appears that no one on this forum has more insight into number 2. Darn. Nathan -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Thursday, April 5, 2012 10:10:50 PM UTC-7, Nikolay Elenkov wrote: I guess that came out wrong, sorry. My point was, that if you are providing a backup/export, etc. feature, saving data to 'the cloud' is generally easier than trying to deal with 'external storage' in its many shapes and sizes. Most users think external=SD card and then you get the troubles you are having. That said, This isn't a backup/export feature. And yes, I understand. But I have a choice of two support headaches. On the one hand, people asking why won't your app write to the sd card. On the other, I can't find the right path. Incidentally, the secret WRITE_MEDIA permission appears to be no help. According to some reports, ICS, and not just the manufacturers, is locking out all non privileged apps from writing to removable storage. If that is the case, I shouldn't be offering something in my app, but I have some really strong words for whoever made that REALLY IDIOTIC decision. (After all, what could a person possibly want on an SD card besides music and photos (Answer: a lot!)?) My customers easily create 8Gig or more of files with my app, so they care about what volume the app puts files on. obviously 'the cloud' is not a good option if your data is in the GB range. Not sure what is. The cloud is where the data comes from, and if that were enough, I wouldn't be doing any of this. Access to the cloud is not universal even in North America. Nathan -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
According to some reports, ICS, and not just the manufacturers, is locking out all non privileged apps from writing to removable storage. That's absolutely not true -- my app, on a Galaxy Nexus, can write to the folder pointed to by: Environment.getExternalStorageDirectory().getAbsolutePath() I have the WRITE_EXTERNAL_STORAGE set. I use it for backup and had nobody complained yet. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Thursday, April 12, 2012 6:27:35 PM UTC-7, Zsolt Vasvari wrote: According to some reports, ICS, and not just the manufacturers, is locking out all non privileged apps from writing to removable storage. That's absolutely not true -- my app, on a Galaxy Nexus, can write to the folder pointed to by: Environment.getExternalStorageDirectory().getAbsolutePath() I have the WRITE_EXTERNAL_STORAGE set. I use it for backup and had nobody complained yet. The Galaxy Nexus does not have *removable storage*, as far as I know, so that is not a counter example. And I have NEVER had trouble writing to Environment.getExternalStorageDirectory() But in many devices, the getExternalStorageDirectory() returns a directory that is internal storage. The same devices sometimes have another, external storage slot with the following characteristics: - There is NO call equivalent to getExternalStorageDirectory() to find out what the path is - The users often don't know what the path to it is. - I don't know what the path to it is. - The manufacturers don't publish what those paths are. - If, by some miracle, the user finds out what that path is, my app checks that folders and finds that it is read only, at least for my app. - I do not know why it is read only, but I believe the manufacturer, or perhaps the ICS platform, has made the decision that only certain apps can use it. I would really like to know what it is going on, besides manufacturers making developers look like idiots. I only have a budget for a small number of devices, so it is really hard for me to see the general trend. Nathan -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
I think you just need to stop calling the SD Card and call it External storage or something. If it's not on the SD card, why do you care? Presumably, it's accessible if the device is connected to a PC via the USB, correct? If you must write to a removable storage, I don't think you can guarantee that. But once again, and I have no idea what kind of app you have, why do you care? On Friday, April 13, 2012 12:36:08 PM UTC+8, Nathan wrote: On Thursday, April 12, 2012 6:27:35 PM UTC-7, Zsolt Vasvari wrote: According to some reports, ICS, and not just the manufacturers, is locking out all non privileged apps from writing to removable storage. That's absolutely not true -- my app, on a Galaxy Nexus, can write to the folder pointed to by: Environment.getExternalStorageDirectory().getAbsolutePath() I have the WRITE_EXTERNAL_STORAGE set. I use it for backup and had nobody complained yet. The Galaxy Nexus does not have *removable storage*, as far as I know, so that is not a counter example. And I have NEVER had trouble writing to Environment.getExternalStorageDirectory() But in many devices, the getExternalStorageDirectory() returns a directory that is internal storage. The same devices sometimes have another, external storage slot with the following characteristics: - There is NO call equivalent to getExternalStorageDirectory() to find out what the path is - The users often don't know what the path to it is. - I don't know what the path to it is. - The manufacturers don't publish what those paths are. - If, by some miracle, the user finds out what that path is, my app checks that folders and finds that it is read only, at least for my app. - I do not know why it is read only, but I believe the manufacturer, or perhaps the ICS platform, has made the decision that only certain apps can use it. I would really like to know what it is going on, besides manufacturers making developers look like idiots. I only have a budget for a small number of devices, so it is really hard for me to see the general trend. Nathan -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
Oh, I see. Rather than coming up with an API to enumerate and access multiple storage locations, the entire feature was made explicitly unsupported for third-party applications. Nice. -- K 5 апреля 2012 г. 8:43 пользователь Nathan nathan.d.mel...@gmail.comнаписал: Well, what do you know. WRITE_MEDIA_STORAGE is a bit like District 13 in I can put this in my manifest. uses-permission android:name=android.permission.WRITE_MEDIA_STORAGE / This is because the permission is hidden in manifest.java. /** Allows an application to write to internal media storage @hide */ public static final String WRITE_MEDIA_STORAGE=android.permission.WRITE_MEDIA_STORAGE; Despite its mysterious nature, if I place it in the manifest and upload the apk to the market, I can see this on the permission page. STORAGE MODIFY/DELETE INTERNAL MEDIA STORAGE CONTENTS Allows the app to modify the contents of the internal media storage. I do not know yet if it will have the desired effect. So the Market can publicly display a permission to end users that is not supposed to be public to developers? Yes, I know that it is bad coding practice to use an undocumented feature, but I am not convinced its a bad business practice. Tell me another way to do it if I am supposed to. Nathan -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
2012/4/5 Kostya Vasilyev kmans...@gmail.com: Oh, I see. Rather than coming up with an API to enumerate and access multiple storage locations, the entire feature was made explicitly unsupported for third-party applications. Nice. Nice indeed. To add more unsubstantiated rumours, it appear that there are actually environment variables that store the mount point(s) of secondary SD cards. Those have been seen in the wild: EXTERNAL_STORAGE_ALL EXTERNAL_STORAGE SECOND_VOLUME_STORAGE THIRD_VOLUME_STORAGE System.getenv(EXTERNAL_STORAGE_ALL) returns something like this on *some* devices: /mnt/sdcard:/mnt/usbdisk:/mnt/ext_card So you'd have to check all and/or parse /proc/mounts, and if you have the magic permission, you might be able to use the secondary, etc. SD card. In short, save yourself the trouble and don't bother :) Using Dropbox, or Google Drive(?), or whatever will give you less headaches. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
It's not me or Nathan. It's the users of our apps who wish to use the memory card slot on these devices. And it's Google's imaginary view of the world where there can only one external storage location per device. That would be like Microsoft not implementing support for printing in Windows because they don't make or sell printers. -- K 05.04.2012 13:20, Nikolay Elenkov написал: In short, save yourself the trouble and don't bother:) Using Dropbox, or Google Drive(?), or whatever will give you less headaches. -- Kostya Vasilyev -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Thu, Apr 05, 2012 at 11:33:38AM -0700, Nathan wrote: On Apr 5, 2:20?am, Nikolay Elenkov nikolay.elen...@gmail.com wrote: I'm not sure how that helps developers, and I am not sure I can not bother. My customers easily create 8Gig or more of files with my app, so they care about what volume the app puts files on. My suggestion, then, would be to use either a large USB thumb drive or some type of network (LAN) storage (could be Samba, SMB, etc.). Later, --jim -- THE SCORE: ME: 2 CANCER: 0 73 DE N5IAL (/4) ||\ _,,,---,,_ Running FreeBSD 7.0| ZZZzz /,`.-'`'-. ;-;;,_ spooky1...@gmail.com | |,4- ) )-,_. ,\ ( `'-' ICBM/Hurr.: 30.44406N 86.59909W | '---''(_/--' `-'\_) | | Kitty! --Crow T. Robot (MST3k) Android Apps Listing at http://www.jstrack.org/barcodes.html -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Fri, Apr 6, 2012 at 3:33 AM, Nathan nathan.d.mel...@gmail.com wrote: On Apr 5, 2:20 am, Nikolay Elenkov nikolay.elen...@gmail.com wrote: In short, save yourself the trouble and don't bother :) Using Dropbox, or Google Drive(?), or whatever will give you less headaches. I'm not sure how that helps developers, and I am not sure I can not bother. I guess that came out wrong, sorry. My point was, that if you are providing a backup/export, etc. feature, saving data to 'the cloud' is generally easier than trying to deal with 'external storage' in its many shapes and sizes. Most users think external=SD card and then you get the troubles you are having. That said, My customers easily create 8Gig or more of files with my app, so they care about what volume the app puts files on. obviously 'the cloud' is not a good option if your data is in the GB range. Not sure what is. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] Re: Write storage on Samsung Galaxy Tab 7.7
On Thu, Apr 5, 2012 at 7:03 PM, Kostya Vasilyev kmans...@gmail.com wrote: It's not me or Nathan. It's the users of our apps who wish to use the memory card slot on these devices. Right. If they have it, they want to use it. My point was, don't try to support 'external storage' in your app (see other post) And it's Google's imaginary view of the world where there can only one external storage location per device. It is an interesting view, given that even 'Google experience' devices like the Xoom have a secondary SD card slot. That would be like Microsoft not implementing support for printing in Windows because they don't make or sell printers. Now that they have Motorola, the whole hardware-software thing might get a bit more integrated, at least for Google branded devices. There is some speculation that those won't even be called 'Android', but we'll see. Getting way off-topic though. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en