I'm fairly new to android programming and need some information for a 4th year forensics course project. Basically I am trying to create a suite of tools for live analysis of an android phone. I know how to get the information I need on the phone, but I was wondering if there was a way to communicate that information back to the PC? I want to be able to run a program from a PC, which, when the phone is docked, will allow the user to access information about the phone (ie currently running services/processes, bluetooth/wifi connections, etc). I have a bunch of methods that will run on the phone and get all the information, but I want to be able to call those methods from the PC, execute on the phone, then have the information sent back to the PC to display to the user instead of just displaying it on the phone. This is to leave as small a footprint on the phone as possible. Thanks a lot.
The ADT eclipse plugin does some of what you are asking.
http://developer.android.com/intl/es/guide/developing/tools/ddms.html
If you can track down the source for it, you should be able to figure out how to do it.
Related
I've seen a few people ask this in a couple of different ways, but the answer was always too complex or not detailed enough.
I want to take a survey of a lot of people at a robotics competition. I ask them questions, and mark the answers on my android-based device in check boxes, radio buttons, pull-down menus, etc. In fact, I will have multiple people working with me and asking people the same questions as me. I'll have one person at a laptop staying at his table. Whenever someone gets a few people to fill out the form, they need to put the data on the laptop. There lies the problem.
We won't have WiFi in this location. We probably will have Bluetooth, I'm not sure, but it seems like using a USB connection will be the easiest method(correct me if I'm wrong). I have a "Sync" button. When they press "Sync", the android device should send all of its new data to the laptop, and the laptop should send all of its new data(from the OTHER people surveying) to the android device. I'm using java on both devices. How do I do such communication?
That is what I want, but if I need to make it easier, I'd be willing to cripple the program to this:
You can only store one form at a time, and the "sync" button will simply send that 1 form from the android device to the laptop, and the laptop won't send any data back. That'd be fine because they really should send the file to the laptop after every form, and they don't really need the forms.
Edit: if Bluetooth is easier, please say why. My guess (if it is easier) is because each Android device might have a different port to connect to the laptop, but I think Bluetooth is harder because I'm not sure how to pair the device to the laptop.
What you should do:
Every phone used to survey should already be paired to your laptop. You should know how to do this.
Have your forms, etc, do your Android app without the communication part first, and be sure to store your forms locally correctly.
For transfer you just open BluetoothSockets on both PC and Android. Have a look at the BluetoothChat example. It's pretty simple. Remember that, since the Android starts the connection it should be Client, while the PC is a Server. Here is the Android documentation page.
For logical sync of both PC and smartphone, you should have some sort of protocol. For example at first they both say what form numbers they have (PC might have forms number 1-19, 21, 23) (Android might have form numbers 20-23). Then they will exchange exclusive information only.
Don't forget to vote up if it's useful information.
I am currently trying to write an android App that is connected to a application running on a pc (even though windows is preferred linux would be ok, too) via either USB or Bluetooth. Right now I'm not really sure how far this is possible. As far as I understand the USB Android API, I can not really use USB to talk to another application. Only raw file exchange seems to be possible. The Bluetooth idea seems a lot more feasible as I see it. I'd write a bluetooth server for the PC and connect to it via a Bluetooth client written via Android API. Point is, is that possible with windows? Has anyone seen any examples for what I am looking for? All I can find for USB is teethering which is not what I want.
There are android applications which allow you to use your mobile's touchscreen act like a touch pad which can be used to control your pc or laptop via bluetooth or wifi connection just like you are using your laptop's touch pad. PremoteDroid, RemoteDroid, Gmote etc.. to name a few (or only these are available i guess!).
But to do so you also need to develop a server application which will run on the device you wish to control and help u make connection between your mobile and the device. I have used PremoteDroid and RemoteDroid and they both work well on my laptop which runs windows 7. You can even add keyboard functionality.
PremoteDroid is openly available here: http://code.google.com/p/premotedroid/
I have a Bluetooth server application on my Mac that I use to test an Android app I'm writing. The app will eventually be used to communicate with a device with a microcontroller and bluetooth modem, but I needed a way to test the app in the absence of that device. The server app is written in Java, so I think it should work on a PC (and almost certainly in Linux).
I'm happy to share the code with you--I found it somewhere on the Internet (though I can't seem to figure out where now) and modified it as I needed to. It uses the BlueCove library, and is only about 60 lines, including several imports (and the code I commented out but didn't bother deleting :). I also have a Bluetooth client program on my Mac, since my app also has server functionality.
I have never tried to do anything like this using USB.
I have an idea for an but I am not sure if it's even possible. I ran into an issue the other day where a phones touch screen was barley working and I needed to get the contacts off of it. I have a cellbrite machine but anyone who has ever used one knows how finicky they can be.
I would love to develop an android app that will connect to any phone via bluetooth and force pull all the contact from it, this would be handy if you have a troublesome screen. My question is this even possible based on the different phone types, and the different level of bluetooth protocols supported on the phones. If anyone has any ideas on how this might be accomplished hat would be great.
Any app with the necessary permission can read a phone's contacts and send them over Bluetooth (or Wi-Fi).
I think the main problem would be that people don't think to install your app until they need it. Then, you can't install your app onto their broken phone unless the phone has a network connection, and if they have a network connection then there isn't really any need to use Bluetooth in the first place.
Actually, one of the basic ideas of Android is that everything on your phone is sync'ed - so you don't have to worry if your phone gets crushed.
Source code of Android Market app is not available.
What I want to do is reversing the network protocol used by the market.
The purpose is to build a tool that can simulate a handset and search for a particular phrase, thus returning the rank of a target application (or maybe the whole list for that particular keyword)
I can connect my Android phone to my home wifi network. Then I need a way to set a "proxy" and a tool like Wireshark. Maybe it would be easier if my phone were rooted, but I don't want to mess with the factory rom. Does anybody have any suggestion? Or maybe has a rooted phone and wants to collaborate with me?
Someone has already done the work, did you look at the android-market-api - they actually have what you want!
I want to write a very simple application (maybe it is not so simple). I want to run application on my PC (either windows or linux) from the android phone. lets say I will have couple of buttons on my phone's screen and each button will open an application, say notepad or calculator. Or even better I will have an application on my computer screen (this will also be written) lets say 8 buttons on the appliaction and I will have same 8 buttons on my phone screen which will imitate as if I am clicking those buttons on my computer screen. I do not want to do this like GMote does by controlling mouse (touchpad).
I have some programming experience but not in Android. I dont know where to start so I will appreciate if someone could head me to the right direction.
Thanks in advance...
cs
The actual coding of this is fairly simple to accomplish. Basically you just open a TCP/IP connection and send and receive representations of keys and responses. There's a few things to learn about permitting easy reconnect when connection is lost and the like, but basically it's all vanilla TCP/IP client server programming in either native or java code, in the context of both the phone and the PC.
What's more complicated is the network topology that can connect the phone and the PC.
If they are both on the same wifi network it's pretty easy, just connect to the PC by its IP address.
But if you want to use the phone's 3g connection, it will be much harder. Chances are the PC you want to connect is not reachable from the external internet due to a combination of firewalls and/or network address translation, so the phone can't directly contact it. You may need to connect them by means of an internet server visible to both the phone and your [cable/dsl/corporate network] - connected PC.
Another possibility might be to get a bluetooth dongle for the PC and connect to it that way, though there can be a lot to learn about getting the PC side of the bluetooth interface working right and the APIs to program against it.
This is not simple at all. Probably in fact one of the more complicated things you could possibly do on android. Your description is extremely vague and it looks like you've put very little actual effort into this.
If you really want to pursue this, take a look at http://code.google.com/p/android-vnc-viewer/