I want to develop an android application which allow to me to track and save into an online database the following information:
Incoming and outgoing call
Incoming and outgoing SMS
Keystrokes typed by keyboard
Questions:
How can I run my application in the background (must use service or thread)?
Is it possible to got incoming or outgoing calls with details
(phone number, date of call, call duration, etc.)?
Is it possible to got incoming or outgoing messages with details
(destination/origin number , message content)?
Is it possible to got all keystrokes typed by keyboard?
Do I need root access to do this?
How can I run my application in the background (must use service or thread)?
Use a service
Is it possible to got incoming or outgoing calls with details (phone number, date of call, call duration, etc.)?
Yes.
Is it possible to got incoming or outgoing messages with details (destination/origin number , message content)?
For incoming there is official SDK support. For outgoing, there are only unofficial methods.
Is it possible to got all keystrokes typed by keyboard?
This is impossible, unless you also wrote the keyboard app being used.
Do I need root access to do this?
No.
Related
I would like to block all numbers except for a select few whitelisted numbers on my Android phone.
In the Android docs I see that there is an API for blocking specific numbers. I was wondering if there is a similar more broad API which rejects all incoming communication unless a number is whitelisted.
Or perhaps an intent I could hook an app up to which would screen each number before ringing the phone.
Use a broadcast receiver to get the state when incoming call is coming.
Then in that event get the number of the caller.
Match the number with your list of numbers,if it equals your whitelisted one allow else disconnect the call programmatically.
It's possible to do many things in MIT's app inventor, yet, there is no clear way on how to receive a phone-call/SMS or even showing the calling number ... is that possible?
You can't receive a phone call with App Inventor, there is the PhoneCall component, but you can only Use this component to dial the phone and make a call.
There is the Texting component, which can send and receive SMS and also display the sending phone number: When a message arrives, the MessageReceived event is raised and provides the sending number and message.
Please see the reference documentation for more info.
http://ai2.appinventor.mit.edu/reference/components/social.html:
PhoneCallStarted(number status, text phoneNumber)
Event indicating that a phonecall has started. If status is 1, incoming call is ringing; if status is 2, outgoing call is dialled.
phoneNumber is the incoming/outgoing phone number. Using this block
will add dangerous permissions that will require additional approval
if your app is submitted to the Google Play Store.
Am in the feasibility study of an app which enables an automated message like, "I'll pick up the call in a second. Please wait.” or so as the user sets, without hanging up the call. So as to enable the user to get time to pick up the call if in case he is busy and also alerts the caller to be patient till the phone gets picked up.
The problem is I want to send it as voice data. Is it possible to send without attending or hanging up the call? Is it possible to send a voice data not as MMS!!!?????
According to what I suggested..
1>Pick the call intent when actually you got the call on you phone
You can find the helpful links over
here,
here
and here
2>have some prerecorded MMS or some SMS.
3> use threads sleep method to wait for some time(the time after which you actually want to send the informatory message to the caller).
4> do your job here to send the message to the caller in the background thru ur app.
I would like to make an activity where i can call a certain numer to check my prepaid phone balance.
In my provider its for example *555# then i will get a response like for example "Your remaining phone credit is 5 USD". I would like to use this data (5 USD) to save in the database.
I am just a beginner, does someone know how to proceed?
You could issue a CALL intent (which requires a permission) and use a broadcast receiver to listen for the SMS response (again, permission required).
However, this isn't a very robust solution as you have to check the SMS sender id and the message text, whcih may change in the future.
EDIT
As pointed out in comments, you will need to use the USSD protocol for this. It definitely appears possible, as there is an app that does just that: https://play.google.com/store/apps/details?id=com.iba.ussdchecker&hl=en.
These threads may be helpful:
Call (and get the response for) a USSD Code, in the background?
How to run USSD commands on android?
How is it possible to do USSD requests on Android?
I'm looking for a sort of trigger in Android, that would let me perform a task whenever a sound is played, so for incoming calls, SMS and e-mail notifications. I did find something like this, but it's only for when the phone is called:
http://developer.android.com/reference/android/telephony/TelephonyManager.html
What I want to achieve with this is sending a bluetooth signal to a bracelet, so it starts vibrating. This would be suited for the hearing impeared or people that work/live in a loud environment who don't carry their phone attached to their bodies.
Calls, SMSes and email are handled by different apps and they have different notifications. Besides calls, you can also get notifications for SMS but not for emails.
SMS broadcast is a private API, meaning that it is not officially supported and can change without notice: Android - SMS Broadcast receiver