I've bought an IP Camera with P2P capabilities and I've been struggling on how this works.
On the bottom of my camera there is an ID which I put on an Android application and it'll just work, it doesn't matter if its behind a router.
Now I've been trying to replicate this with coding but I have no idea where to start. I found this
Android App to Stream IP Camera using P2P mode over Mobile port?
Which is what I'm trying to do but still I'm lost as of how this works.
Any ideas?
Related
I am working on an Android pastime project. I have a camera device that runs on Android 8.1. This camera device doesn't have a screen. I am trying to identify the best way to transfer photos from the camera device to my smartphone. So, I see a few options.
Pair the camera device with my smartphone over Bluetooth. This way, I can transfer photos over Bluetooth. In this approach, I will be building a background Android service and pushing it to the camera which can take care of transferring the photos. Ref: https://developer.android.com/guide/topics/connectivity/bluetooth/transfer-data
Have a hotspot turned on on my smartphone. Connect the camera device with the smartphone's hotspot. This way, I can upload the photos captured to Firebase or some other cloud platform and later pull the photos on the smartphone. The only problem I see is that the hotspot should be always on.
Make the camera device utilize the data connection of my smartphone. I am not sure if this is feasible.
I am evaluating these options to identify which will be a better option. I am trying to understand what kind of Android services I would have to build and push to the camera device and my smartphone. Any thoughts/insights are welcome.
Details about the camera device:
The camera device (camera module) has both Bluetooth and wifi capabilities.
The camera device is not stationary. So it can't be connected with home wifi or specific wifi. But the camera will always remain closer to my smartphone.
As the camera runs on Android, I can build services/APKs and push them to the camera. The same applies to my smartphone.
I am trying to find more details on how the photo transfer works on devices like Google glass.
Personally I would go with Wi-Fi Direct or Wifi hotspot just for faster transfer and plenty of libs and implementations for IP. Bluetooth is significantly slower and you will probably write a lot more code for handling file transfer
and when talking about IP connection - I would go with libstreaming. In there you have an RTSP server, common solution in IP cams and similar kind devices. It will stream video live, I'm not sure it is capable to do photo during this, but for sure you could add such feature. And you have ready-to-go solutions for handling camera and data transferring through Wi-Fi, based on some RFCs and official docs, not some custom not-so-reliable implementations
PS. Google Glass is a bad sample in this case, it needs Internet connection to work...
PS2. Yep, this answer is opinion-based, this kind questions are in fact forbidden on SO...
I'm using libVLC in my Android app to stream video over rtsp from the camera that I'm connected to over WiFi.
In general, streaming works fine, but there seems to be streaming problem if I'm connected do the camera by WiFi (that provides no internet) and also have got mobile data turned on. I use bindProcessToNetwork to make sure that the streaming is done via my WiFi network. On some devices (like Huawei Mate 10 with Android 9) the streaming works ok (it seems to use WiFi and ignore having mobile data on), but on other devices (like Samsung Note 10 with Android 10) when I use new networking API it seems that VLC is trying to connect via the mobile data, and only after some time when it fails it decides to use my camera's WiFi (despite the fact that I used bindProcessToNetwork).
I get an error log
VLC-std: Unable to determine our source address: This computer has an invalid IP address: 0.0.0.0
Suprisingly, it works fine if I connect to my WiFi from the system settings...
I found some comments that media streaming is done in a separate process, and it ignores calling to bindProcessToNetwork but on some devices (and Android versions) is seems to work and on others it does not.
I already asked this question on the Videolan forum, but with no luck.
Is there a way to force libVLC to stream using a specified network?
I don't think LibVLC can do this, and it's a bit out of scope of a multimedia framework.
I would handle this on the app side if I were you, using something like How do I connect to a specific Wi-Fi network in Android programmatically?
I'm thinking about using the Sony Camera Remote API, but before I start I'd like to know if it's possible to create a connection between an Android device and a Sony camera without wifi. I'd like to know because I'm developing an app where taking pictures is one of the functionalities and that needs to happen even when there is no wifi.
Unfortunately, the Camera Remote API only works over WiFi, so there is no other way to control the camera.
i need to develop an android app wich controls about 4 cams. with wifi direct i can control only one camera via the sony api as the cam acts as access point.
so i connected the hx60 to the wireless router where the android device is connected. but i only can ping the camera when im connecting to the playmemories camera apps application (from the application list in camera menu). im not able to call anything via the api. is it even possible with a router in between?
if not, how to connect to multiple cameras else?
thanks alot!
stephan
Unfortunately it is not possible through the Camera API to connect multiple cameras to a single device.
I'm working on a course project. We are making a circuit board, which has a LMX9838 chip connected to a ARM-based MCU. I want to make an application on Android to connect the smartphone to our board using bluetooth featured on the smartphone and LMX9838 Bluetooth controller. My app will be able to send command from the smartphone to the MCU via LMX9838 and it will be able to transfer data (e.g files) between the phone and the MCU too.
That's what I want to do. But I wonder if it is possible to connect bluetooth on the smartphone and the LMX9838 bluetooth controller? And if it is possible, how can I make it? I know my question is very unspecific but you guys could give me some hints about the basic step, please. Because I've never worked with bluetooth technology so my experience in it is nearly zero.
Anyone have any suggestion? Thanks in advance!