Working on an Android app that downloads images in JPEG format internally and then displays them within the app.
The issue is that the default Gallery App, shows those images as it scans entire storage for JPEG or PNG files. That causes confusion w/ some users as they do not expect to see internal app images next to their family photos.
My initial thoughts are to rename the extension. But before that, does anyone know if perhaps a simpler way exists by using permissions?
Related
I am creating an App where i want the users to upload the pictures themselves(like their display pictures), But i have no idea to do it. I want to achieve the task for Android and IOS in Xamarin. From this code below i am only able to source to images which are present in Resources.
I'm working with the camera in Android for the first time and am hung up on a few things that seem to be required. I've given the app Camera permissions and I can see the thumbnail image.
After searching I found this google example that states I must create a file to see the full size image. Why? Also, in creating a file I have to ask the user for permission to write to disk. I have no intention of saving the photos, however I need to create a file and and now need to worry about file cleanup.
Lastly, this full sized image has no EXIF data. I've found a way to create a bitmap with the file to rotate the image. Is this correct? It seems like a lot of work to just see a correctly oriented image that i've just taken.
After searching I found this google example that states I must create a file to see the full size image. Why?
A full-size photo is much larger than the 1MB limit for Intent contents.
I have no intention of saving the photos, however I need to create a file and and now need to worry about file cleanup.
Then do not use ACTION_IMAGE_CAPTURE. Use the camera APIs directly (android.hardware.Camera, android.hardware.camera2.*) or via a third-party wrapper (Fotoapparat, CameraKit-Android).
this full sized image has no EXIF data
With ACTION_IMAGE_CAPTURE, you are delegating to whatever camera app the user happens to choose. That will be one of hundreds of camera apps, whether pre-installed on the user's chosen device or installed by the user from the Play Store or elsewhere. The behavior of those camera apps, with respect to EXIF tags and anything else, is up to the developers of those camera apps.
It is also possible that you are not reading the EXIF tags correctly.
After searching I found this google example that states I must create a file to see the full size image.
That is a nonsense statement in that document. You do not have to create a file yourself. You only need to supply a file path in the intent so the used Camera app knows where to store the image.
Further i never saw a camera app that didnot include an exif header.
I am still new to cloud and mit app inventor.But I would to ask some question regarding cloud and mit app inventor.
But firsty i would like to explain how project should work.
My project is about home security system. When a press button is pressed, it will capture the image of visitor and the home owner will receive picture of the visitor on android app. The android should be able to receive picture and unlock door by pressing button unlock. The camera used is VC0706 Camera connected to Arduino Mega.
My question is that can mit app inventor receive picture from cloud since all of the picture taken will be stored in cloud.
Accessing images and sounds in App Inventor 2
Applications built with App Inventor can access sound, image, and video sources from three different kinds of locations:
Application assets
The sources labeled Media shown in the designer — part of the application's assets — are packaged with the application. Anyone who installs your application will have them, as part of the application. You also specify them in the designer, which is convenient. You can also specify these in programs by their file name: just use the file name without any special prefix. For example, if you have an image asset named kitty.png, you can use it as an image: just set the Picture property of an image component to the text kitty.png. You can similarly use files names for sound (Sound or Player) or video (VideoPlayer).
Assets are the most convenient to use, but the space for them is limited to a few megabytes, because they must be packaged with the application. They are good for small images and short audio selections. Bit you would probably not use them for complete songs or videos.
The phone SD card
You can access files on your phone's SD (secure digital) card using file names that begin with /sdcard . You could play a song on your SDCard by setting the source of a Player component to
/sdcard/Music/Blondie/The Best of Blondie/Heart of Glass.mp3
and starting the Player (assuming of course, that the song file is on the SDCard). Make sure to specify the complete file name, including the "mp3".
The Android system also includes an alternative way to designe SDCard files as URLs. Here you prefix the file name with file:///sdcard and use "URL encoding" for special characters. For example, a space is "%20". So you could designate the same file by setting the player source to
file:///sdcard/Music/Blondie/The%20Best%20of%20Blondie/Heart%20of%20Glass.mp3
Note that you'll want to use a Player component for this, not Sound. A complete song like this is too large for Sound to handle.
Images and videos can be designated similarly.
App Inventor doesn't (yet) include any way to store files on the SD card. It also doesn't (yet) include a way to list the files on the SDCard. You'll have to use other applications or the Android phone file manager for that.
Using the SD Card provides a lot more space for media than trying to package things as assets. The drawback is that users won't automatically get them by installing your application.
URLs and the Web
You can access files on Web using URLs, starting with http:// , for example, setting the picture property of an image to
http://www.google.com/images/srpr/nav_logo14.png
and similarly for music and videos. Make sure you use the link that points to the actual file, not to players for the files, which is much more common on the Web, especially for music and videos.
Other content URLs
The Android system also uses URLs to access various places that media is stored on the phone. For example, the images in the photo gallery can be accessed with file names beginning content://media/external/images/media , as you can see by using the ImagePicker and examining the resulting image path.
App inventor 2 has built-in web storage TinywebDB which stores text strings only.
In your scenario, post the images to somewhere on the web, and then store the image URIs in TinyWebDB insdie App inventor.
Yes, using MIT App Inventor you can send and receive the picture not directly but indirectly. First, you have to convert that image to imagebase64 it means in text formate then decode this text to get the original image. It means you can store any images in clouddb or firebase. Here is the video about that
https://youtu.be/ySruxnxeJgM
I have a large amount of online images stored on my server. I have created a small java server backend to provide album lists and images per album, including a small management console.
I want to use/view these images on my Android device, by using the standard photo/gallery application. Apps like Google Picasa and Facebook do the same thing.
Eg. When I open up the gallery app, there's a tab called "Albums" where a number of folders are visible, including Picasa/Facebook. Most of these folders can be found on my SD card, but the albums by Picasa/Facebook are only online. Entering these online albums clearly shows the "album structure" you have with that provider ("Profile Pictures" at Facebook for instance).
The question:
How did Picasa/Facebook end up there, and how can I recreate said functionality?
I am almost certain it is done using Content Providers, but I can't even find a simple example when used for images. And unfortunatly, most answers here are providing solutions to the wrong problem.
The secondary question: Would this also be possible with Android's Movie and Music players?
The device is Samsung Galaxy III. I developed an APP to run the camera activity and capture an image. After analyzing the image, I print out some text information. Right now every captured image is saved at gallery. I don't need the image to be saved in gallery or SD card. I think either of the following two solutions will work for me, but I don't know how to program it:
avoid saving pictures to gallery.
delete the picture somewhere in the APP.
Any comments are appreciated.
Read Android Camera tutorial.
...
Storage - Are the images or videos your application generates intended to be only visible to your application or shared so that other applications such as Gallery or other media and social apps can use them? Do you want the pictures and videos to be available even if your application is uninstalled? Check out the Saving Media Files section to see how to implement these options.
or see this one: How to save image captured with camera in specific folder.
In the Camera intent when starting, add this:
intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(getTempFile(context)));
I solved my problem with following two steps:
as '#auselen' pointed, save all the images to a specific folder. How to save image captured with camera in specific folder.
delete all the images in that folder somewhere in the APP. How to Delete Image From SDCard in Android
use this for delete a pic
ImgPhoto1.setImageBitmap(null);