i have been trying this prblemstatement. when triggered with a bluetooth file transfer android phone has to make an automatic phone call to a given number .Can any help with the coding in android for this purpose.
I need code to start phone call from bluetooth like when i send data from it to phone then the phone should automatically call apredefined number.
public void call() {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+phone));
startActivity(callIntent);
}
is the function you need to call as soon as the transfer is triggered.
String phone = "tel:" + "03242342342" ;
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(phone));
startActivity(intent);
you need to add permission for that.
<uses-permission android:name="android.permission.CALL_PHONE" />
or better approach to use
Intent.ACTION_DIAL
as intent filter in order to avoid permission, ACTION_DIAL will choose appropriate app for phone calling.
Related
Android: How to show a list of dialer app installed on my device instead of directly calling default dialer
Intent intent = new Intent(Intent.ACTION_CALL);
startActivity(intent);
permission -
<uses-permission android:name="android.permission.CALL_PHONE" />
So with this code the deault dialer app gets called. I want the behavior where Android suggest me the list of apps that could be used for calling feature.
You can not show list of dialer while using ACTION_CALL intent.
You need a special permission because the ACTION_CALL is a protected action, allow you to call a phone number directly, with no interaction from the user.
You can make Intent chooser for ACTION_DIAL intent which allows you to show list of apps which has dialer. You can use this code.
final Intent intent = new Intent();
intent.setAction(Intent.ACTION_DIAL);
intent.setData(Uri.fromParts("tel", "123456", null));
startActivity(Intent.createChooser(intent, ""), REQUEST_CODE));
I hope it helps!
I'm trying to write an app that, among other things, calls people. To do this, I use the following code:
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + number));
callIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(callIntent);
The problem is: When I run it, it shows me a dialog and I need to choose with which app I want to make the call (Skype/Viber/Dialer/etc.). How can I make the call immediately using the standard dialer (without the dialog showing up)?
The difference between Intent.ACTION_DIAL and Intent.ACTION_CALL is that the first one allows the user to explicitly initiate the call showing the dialer UI. When using ACTION_CALL, a pop-up will open and let you choose which dialer to use.
Also, add permission on your manifest:
<uses-permission android:name="android.permission.CALL_PHONE" />
I have a class that makes a call to an emergency number. I get to the "call" app with the phone number already passed in, but i still have to press the Call Button to start the call.
Is there a possibility where i don't actively have to press the call button but it does it automatically?
Emergency numbers always require that the user presses a button explicitly. This is a security feature.
See docu for ACTION_CALL
As henry has mentioned in his answer, its only possible call emmergency number using ACTION_DIAL. Howerver you can call anyother number directly using this intent.
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "ur phoneNumber here"));
startActivity(intent);
Dont Forget to Add this Permission to the Manifest :
<uses-permission android:name="android.permission.CALL_PHONE" />
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + bundle.getString("mobilePhone")));
context.startActivity(intent);
Permission required is
<uses-permission android:name="android.permission.CALL_PHONE" />
I have the folowing code and im starting it from a dialog fragment button:
uri = "tel:"+ServerDialogCallUs.this.contents.getString("phone_number");
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(uri));
Instead of making a normal phone call this code starts a skype call. How can I give the user the option to chose between the normal call and a skype call.
Thanks
actually, i was missing the permission:
<uses-permission android:name="android.permission.CALL_PHONE" />
after adding this permission to the manifest I can chose between a normal and a skype call.
Thanks
Try to call setPackage() method, works fine:
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setPackage("com.android.phone");
intent.setData(Uri.parse("tel:" + number));
startActitivy(intent);
Had the same issue and tried some answers:
Intent.ACTION_CALL will call, which needs probably the right permission, BUT using Intent.ACTION_DIAL and use an Intent Chooser, I got the right behaviour.
Regarding USSD like "*123*03#" which pops up also as question in this context, where android says, it cannot handle the intent
2.1. Uri.encode("#") is not the solution, it just adds a "23" to the phone numer
2.2. Skype handles the number wrong, it adds the country-code like +001. So Skype does not handle USSDs correctly. But it seems, I have no chance, to exclude this.
So, I did:
final Intent intent = new Intent();
intent.setAction(Intent.ACTION_DIAL);
intent.setData(Uri.fromParts("tel", "123456", null));
startActivity(Intent.createChooser(intent, ""), REQUEST_CODE));
From my point of view
intent.setPackage("com.android.phone");
is device dependent or at least does not leave "phone" included on my device.
That's because
There is only skype installed as a phone call handler or
You associated skype as default handler for phone calls.
In the latter case, go to settings, apps, skype, and remove that association on the bottom of the app details screen.
Your phone probably has Skype as the default app to handle the Intent.ACTION_CALL
Try the following code:
uri = "tel:"+ServerDialogCallUs.this.contents.getString("phone_number");
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(uri));
startActivity(Intent.createChooser(intent, "Call Using..."));
Is it possible to access the dialer of android (mobile phone) from android app. Say if a user enters 001 in the app following by a telephone number, app should make the dialer of android(Mobile Phone) dial the number after 001...?
You can send an Intent which will open de phone dialer with supplied phonenumber.
http://developer.android.com/reference/android/content/Intent.html#ACTION_DIAL
String url = "tel:1234";
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(url));
Don't forget to add the permission to your manifest
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
You could try to send Intent with this action Intent.ACTION_DIAL(android.intent.action.DIAL) to see if it works.
ACTION_DIAL tel:123 -- Display the phone dialler with the given number filled in.
Use below code hope it helps
Intent sIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+00189899989));
startActivity(sIntent);