I am trying list number of cameras (Front, back, external) using API27 (8.1.0) (which they claim as supporting external USB camera.) But couldn't.
Looks like android api (camera2) doesn't support this, any idea?
Android camera API supports external camera but it still needs device manufacturers to implement this feature at kernerl/HAL level. My understanding is not too many devices today actually implements this feature.
Related
I am trying to work on stereo video capture using two back cameras of an android device. Since I don't have a device with android pie and two back cameras on hand, I've been trying to create an emulator with the above specifications. But I'm unable to find any resources on how I can create a hardware profile with two back cameras. Is it possible to do this in android studio 3.3
I think you are trying to use the new multi-camera API introduced for Android P.
The API search for the physical camera sensors/components, so i do not know if you can emulate all of its features without a physical device. But the best you can do is to emulate a Google Pixel 3 or a Huawei Mate 20 Pro (or Mate 20 series) phone, with a camera enabled.
Summary: I suggest you to emulate a Pixel 3 from Android Studio, and use the API, I think you can implement some easy functions such as zooming or differentiate between the physical and logical cameras. But if try to implement serious features, then you need to get a physical phone with multi-camera support from Android side.
Okay, I just got a new Moto z2 play and decided to try and learn the Android Camera2 api using it... The phone is not rooted, and the stock camera app has the option to record slow motion videos and have manual focus during photos... But when I probe the CameraCharacteristics using the Camera2 api, it shows me a LEGACY hardware level device, with no support for high fps recording nor manual sensor control... I've read in the internet that build.prop can be edited so that the device reports the full supported capabilities... But to my understanding, if those capabilities were not supported by default, it wouldn't be possible for stock camera app to show them, right...? So, what's going on? Is there some caveat I'm missing?
The stock camera app likely has custom interfaces to use those features, built on top of the legacy camera HAL.
Unfortunately, the standard camera2 API cannot run on top of the legacy HAL besides in LEGACY mode, because there's no way to automatically hook into custom OEM additions to the legacy HAL.
So there's likely nothing you can do here to enable these features in your own app; Motorola would have to update their entire camera stack to expose a modern camera HAL for camera2 to work better.
I'm wondering if the Sony Camera API has parts that are only supported by certain versions of Android.
I have the latest firmware (1.04) on my a6500 and running Android 7 on LineageOS (successor of CyanogenMod) for the Samsung S5 (KLTE version). This is what I get in my Play Memories app:
The shutter button works and images download to the phone. But that's it.
Additionally, when I use another app called DSLRDashboard, the settings show up and can be changed on the app, but they don't get changed or applied on the camera, and this is in full manual mode on the camera. Other modes don't work either.
What could be causing this? What would need to be added into a 3rd party ROM like LineageOS to get this working?
Really hoping that the official Sony developers that roam this site will be able to chime in.
So, a bit of a snafu on my part.
It's not enough to update just the firmware on the Sony camera. The Remote Control app installed in the camera must also be updated as well, which means hooking the camera up to WiFi and downloading the updates for that app. With that done, all the settings appear in the phone app and can the changed.
I was wondering if there was a known camera that was compatible with android OS's. (such as the nexus 7).
I am trying to essentially control a high resolution digial camera from the android tablet so that it can control when to take a picture, and then retrieve the picture.
This would require a camera with a public API.
I have experience in android programming but not too much in communicating between two different devices. So i was wondering what I should look into in order to achieve this.
Here is a camera that runs Android: http://news.yahoo.com/samsung-takes-aim-japanese-rivals-android-camera-034717081--finance.html
And since it is Android I guess that the API is public.
And the same camera with more info: http://www.samsung.com/uk/consumer/mobile-devices/galaxy-camera/galaxy-camera/EK-GC100ZWABTU and it does run what look like standard android apps.
If you want to control that from another Android device, I think that would make a very interesting project.
The other possibility is the Nikon external control SDK, but I have no idea what language that is in. That was used to build the excellent Sofortbild app for Macs, which controls most Nikon DSLRs. https://sdk.nikonimaging.com/apply/
There are Android applications which can control a set of cameras with added features. The one I'm using gives me the ability to take very specific timelapse shots which would be too complicated or even impossible to get through the camera's own controls. You can find many other control apps on the play store.
Unfortunately this one is only for Canon EOS cameras : DSLR Controller
I have been checking since some time to mount external drives to android phone i.e., if I plug external drive(hard/flash/camera) to android device, the android phone should be able to access the storage file system.
There are apps in the market which controls external devices through phone.
I can use the USB Host mode { http://developer.android.com/guide/topics/connectivity/usb/index.html } to communicate with the usb device. But USB Host and Accessory modes are directly supported in Android 3.1 (API level 12) or newer platforms.
While an app named DSLR Controller { https://play.google.com/store/apps/details?id=eu.chainfire.dslrcontroller&hl=en } , requires Android 2.1 or above. Since the application is based on accessing the camera through android phone. If the app displays the correct info, then the task of accessing the storage of camera (or any other drive) seems to be possible.
But I want to use the application in lower version as well. Any kind of help will be appreciated.
Please comment,if need any more description of the problem.
Thanks.
You can create an application based on FileManager open source project on Github. You can specify there to identify your device. You can change these code according to your need.
Here is the link Adroid-File-Manager
If you just want to be able to access USB storage (like a flash drive) you can open the files the normal Java way (java.io.File, etc). Android ICS automatically mounts flash drives under /sdcard/usbStorage/, but I'm not sure about previous versions or other types of hardware. It might still work, though, so I'd suggest that you test it and see what happens.
The only sure way of getting this done is to use API level above 12, otherwise a few phones may have support for usb host but most of them wont support it.
The reason being first of all you need hardware support for usb host, even if that is present the drivers needed might not be compiled into the kernel, i did some work while trying to implement usb host on nook color, even though it had hardware support, getting usb host working took almost 2 months and a dedicated app. So its not something you will be able to do for every device. A few might support it out of the box but even those would need root and lots more work for mounting drives and all that..
the DSLR camera also does it the same way look at the requirements
- Android device with ARMv7-A or newer CPU architecture (most 1ghz+ devices)
- Not rooted: Android 3.1 or higher with USB host kernel+API support
- Rooted: Android 2.3.1 or higher with USB host kernel support
These are the only devices that can support USB host.
From the app description, Android 2.x devices need to be rooted. This suggests that they have some native implementation of the USB host code (possibly a pre-compiled kernel module they load).
Therefore, the solution for this varies based on the specific hardware and software (kernel, vendor modifications, skin) it is running.