I am building an Android app and want to initiate an anonymous phone call for both caller and receiver.
For example:
User A press 'call User B' button, and then initiate an anonymous phone call to User B. The tricky point is that both User A and B don't know each other's phone number and after the conversation, there is no record left and privacy is protected.
I don't know if native Android can do this. Could anyone give me some clues about this? Thank you very much!
According to the platform source-code there is NO WAY to place a call without the knowledge of the user. The best thing you can do is to make the call automatically but the user will see a dialog saying: "Calling XXXXXXXX" and he will have the chance to cancel it.
Even if you make your own dialer application you will have to sign it with the system key and place it in the system/apps folder in order to get the required permissions for that kind of things.
As for the call log, I don't know if you can make the call not to appear in it in the first place but I think (not sure though) that you can find it and deleted afterwards. Android informs other applications of call actions via Intents so it is relative easy to detect when a call ended and then query the call log.
Hope this helps...
Related
OK I want to be able test internal phone systems in an automated fashion using an Android app, the requirements are asking for an app which can initiate a call programatically. If this is possible then when the call starts they wish to be able to send key presses, like imagine the phone menu says "press 5 to get to the X menu".. can we send that keypress from code? This way the whole system could be tested with a series of waits, and keypresses sent to the dialler.
I'm not sure how to find out if this is actually possible.. I saw PROCESS_OUTGOING_CALLS, but I havent been able to find any resources or examples on doing this, does anyone have any information? I actually got in touch with a freelancer who ended up saying it was definitely not possible (he's pretty good and he simply said 'pressing dialpad during call was impossible'), but my client is telling me apps already exist to do this, so any tips would be helpful!..
You can definitely make a call from code. See:
How to make a phone call programmatically?
You can invoke key presses from code as well:
Invoke keypress event in android?
As for doing it during a call, I haven't tried this, But you can try it using the methods from the links. Good luck!
I have an application from which a user can call another user with the click of a button.
I was wondering whether there was a way to place this call anonymously, hiding the phone number from the user and not saving it in the call history.
According to the platform source-code there is NO WAY to place a call without the knowledge of the user. The best thing you can do is to make the call automatically but the user will see a dialog saying: "Calling XXXXXXXX" and he will have the chance to cancel it.
Even if you make your own dialer application you will have to sign it with the system key and place it in the system/apps folder in order to get the required permissions for that kind of things.
As for the call log, I don't know if you can make the call not to appear in it in the first place but I think (not sure though) that you can find it and deleted afterwards. Android informs other applications of call actions via Intents so it is relative easy to detect when a call ended and then query the call log.
Hope this helps...
I have an application from which a user can call another user with the click of a button.
I was wondering whether there was a way to place this call anonymously, hiding the phone number from the user and not saving it in the call history.
According to the platform source-code there is NO WAY to place a call without the knowledge of the user. The best thing you can do is to make the call automatically but the user will see a dialog saying: "Calling XXXXXXXX" and he will have the chance to cancel it.
Even if you make your own dialer application you will have to sign it with the system key and place it in the system/apps folder in order to get the required permissions for that kind of things.
As for the call log, I don't know if you can make the call not to appear in it in the first place but I think (not sure though) that you can find it and deleted afterwards. Android informs other applications of call actions via Intents so it is relative easy to detect when a call ended and then query the call log.
Hope this helps...
is it possible to press a button and start a call e.x. in skype?(i know that is possible for a telephone call but i would like to see if i can make this stuff with a voip app as skype)
If the user has skype installed, and the user tries to place a call there are two options you can take:
i.e. just try and call skype directly (but this requires knowing the correct intent to launch skype) or you request to make a call and the user will be shown the option to use skype to place the call (unless they've set the default dialer and the primary application).
I think there may be a way to get a list of activities that are registered to handle certain events (i.e. get the list of dialler apps on the device) from this you might be able to find the skype app and get enough information to force the use of that. The problem with this is you are then tied into using skype and only skype rather than let the platform handle it.
When a user tries to launch an application I want to suppress that application and then call another application. Example I want the user to authenticate himself before launching a particular system application (settings application etc). The authentication application should pop up every time the user launches the settings application
I know you will have to use broadcast receivers and intents but have no clue how to do it.
Sounds like you should create a "lib" project that have public interfaces that you can use.
Then share them between the apps instead of trying to execute another app?
But what I know this is not possible to actually execute up another app, since this then gives dependency to something that you don't know if it is installed. It must already been started if the intents should work.
Also like the answer before, it could be used for abuse.
Look at this link for more information:
http://mylifewithandroid.blogspot.com/2007/12/playing-with-intents.html
I sort of hope this isn't possible... Launching a different application from the one the user actually clicked? Leaves the door open for abuse.