I have zero experience with apps and smartphone development. I would like to know if it's possible to screen scrape or otherwise access data coming from apps on smartphone?
Like If Im using some app that displays a list of train timetables or sporting fitxures, is it possible to access this data from another app on the phone? Even if it means capturing packets being sent to/from the phone. Any know what my options are when it comes to capturing data being displayed/used by another app on a smartphone?
Basically no. This would represent a huge security vulnerability.
You can try:
Point your phone proxy to a PC will proxy facility.
Forward all packet to an app and push those packet into file. (PCAP format perhaps, something like the TCPDUMP command in Ubuntu.
Then you can read the packet content.
You will have to write this App yourself. (I am not sure if there is such App around)
Related
I'm looking to use five android phones to take a photo simultaneously (from different angles).
I'd like to control the phones via a pc (linux or mac) and ideally they're all connected via USB/Ethernet.
I'm an EE, but I don't have much Android experience, so looking to get some feedback based on what I've read so far.
Looks like the Scrcpy library could work here, controlling the 5 devices via adb. I see it allows for multiple connections, have anyone tried this?
I could potentially create a PCB that integrates with the headphone jack of each device and control via push button and 470ohm resistor?
I could potentially build a client app on the Android devices, which connects to a server app on linux/mac (basic TCP/IP client server)
What routes/design would people take on architect-ing such a system?
Thanks for your help and reading this.
What do you mean by "simultaneous"? How much leeway do you have- seconds? Milliseconds? Somewhere in between? Because those can require different techniques.
The easiest thing is to use adb on all 5 devices (I think you can, but I've never personally done more than 2 at once). YOu can even use adb over wifi, so you don't need the cables. You can open the photo app on each (either manually or via adb) then send an input command down via db to each device to send a click of a CAMERA media button, which should cause them to take a photo (of course this is dependent on the camera app honoring this keycode).
The problem with that approach is that you're going to have to have a script that either sends commands to each device 1 at a time (they'll be off by seconds) or spawns N processes that each send a command. That obviously isn't going to be simultaneous either, although it would be closer.
If you really do need simultaneous, its better to write an app on the PC that sends a UDP multicast message. Write an Android app that listens for it. Then when the device receives the message, take the picture. This will assure each device gets the message at the same time, and the picture should be within milliseconds of each other. Of course, if you don't need ms resolution this is total overkill.
I require a fast reliable method of sending control commands (simple data, possibly only a few dozen possible commands) to a remote system which is using a smartphone* as its onboard computer. I have deemed standard data packages used for mobile internet data transfer as too unreliable of control purposes, however I have noticed that once a voice call is initiated it is much more reliable. Has there been any development into sending data between phones across a connected call, and if not are there any known reasons a modified dialup modem in software form couldn't be used?
Furthermore, could this protocol be robust enough to send back low res video and other simple numeric data?
*Smartphone - A phone with significant processing power and ability to run custom programs (most likely with an Android based OS however am open to suggestions)
Have you tried SMS? while you won't get video data it may work for small chunks of data. Also if the small chunks are from the phone to a server, you may try sending DTMF down the line (however I've yet to see that working.
Other than that it's customised hardware.
Hmmm...this reminds me of those old TV games like Hugo...there you had a voice connection and I think the commands were given by the different tone of the key pressed from 0-9. Maybe you should try something similar.
Does anyone know how to implement communication between 2 android devices over the internet without using App Engine? For example, I have 2 Android devices, and I want to send a stream of data from one to the second one over the internet. I would like to know, if someone could give me an idea, how could I identify the second device (or how to create a communication channel between two devices ), so I could initiate the transfer (this is not possible using IP addresses ?).If i were to have my own server, which is the best way to go to accomplish this? If someone could point me to some useful resources I would be grateful.I have some background on android programming.
One way I was thinking to accomplish this was to write an android application, and when the user enters it, it will start a service. This service will then listen for network events and registers on my own server with the username and the IP address of the device as available.When another device wants to send data, it will connect to the server, search for the target device (by username key), gets the IP address and sends the data. Could this work, or does anybody have other suggestions?
One way I thought about doing this is making
(excuse the spelling mistakes if any)
It would help if we knew what kind of data you were trying to transfer.
For small bits of information, like notifications, events, and the like, I would suggest doing an HTTP POST to a server that has C2DM capabilities, and using the server as an intermediary.
For larger data, the only way I can think of to do it is to set up a SyncAdapter, then upload the information to the server. The delay will be a bit longer, but you'll reliably get the information downloaded from the server to the phone. So less of a communication API and more of a dropbox for phones.
I haven't done much with NFC, but that may be something you want to look into.
This is more about an explanation then it is about asking a question. What I am wondering is if its possible to write an Android application that can communicate with another Android phone, given the phone number of the phone I want to communicate with. By communicate, I mean I want to be able to send data to the phone and have my application on the other phone be able to recive it.
If its not possible to do this, then I guess my alternative is to have my application "sign" the phone into a server. Then I'm assuming the server can act a proxy to communicate with both phones.
Any clarification would be helpful!
Check out the BUMP api. It allows you to establish a connection between two (I think more are also possible) devices, and it gives you a channel over which to communicate. The devices need to be "bumped" first, but then it's all fair game.
Any reason why it has to be by phone number? That and i'm pretty sure you can only send data over WAN or local bluetooth/wifi.
Perhaps try something along the lines of a server that has phones sign into it and keeps track of the phones IP addresses allowing them to communicate almost directly to another (kind of like a dynamic DNS hah!).
Look into SMS. I haven't coded for mobile phones in years but I seem to recall that most phone operating systems let an app intercept SMS messages, react to their contents, and prevent the user from seeing them.
As long as you're not sending lots of data, SMS might do the trick.
I'm building a Kiosk, using a MacMini and an Elotouch display. It would load a CoreAnimation based App. that plays multimedia content following user touch-based choices.
I'm in a early stage of the project. I can change the architecture/technology if needed.
I need that my Kiosk could also distribute mp3 content to Smartphones close to it, wirelessly.
For now I would like to support iOS and Android phones. I don't have any control on the smartphone side. The Kiosk is coin-operated (with time based session expiration) and connected to the web through a wifi network, managed by me.
Can you tell me a common, safe and simple way to accomplish this?
I thought to WebDav but I would like to explore alternatives, the simpler for the user-side the better.
If you have one-time/session-based URLs, displaying a QR code on your kiosk screen would be one way to get the download URL to the device (and invalidated after successful download/session expiration); this would require a QR code reader which neither iOS nor Android have built in, though, but many users have one.
Additionally, display the same URL that's encoded in the QR code using URL shortener service like bit.ly, goo.gl, etc. for the user to type in.
This way there's no set up for the user, no funny business with pushing data to the user (privacy/security concerns) and every smartphone does have a web browser.
The best way to accomplish this is by using OBEX Push and bluetooth.
There are plenty of command-line tools to list all bluetooth devices nearby, and to do a file transfer to one of them.
The user would just need to activate bluetooth discovery on his cell phone, search for the phone on the kiosk, and select his phone.
Another alternative is mail. WebDAV is a bad idea, because the user will have to type in the address (cumbersome!).
A lot of photo kiosks are already using OBEX Push to receive photos from phones.
The easiest is to provide different types of usb cables: micro-usb, mini-usb... Almost all cell phones can be attached as a USB disk nowadays.
Summary:
* OBEX Push
* USB connect
* Mail