sitio sirve señal samsung que para llamar cómo crear codigos clic celulares botón android android-emulator

android - sirve - codigos para celulares samsung



Aplicación de Android para llamar a un número al hacer clic en el botón (7)

API 24

Intent intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:+94720999666")); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for ActivityCompat#requestPermissions for more details. return; } startActivity(intent);

y también agregar

<uses-permission android:name="android.permission.CALL_PHONE" />

Quiero llamar a un número dado en un cuadro de texto, pero aparece el error:

La aplicación ''xyz'' (proceso com.android) se ha detenido inesperadamente

El siguiente es mi código. ¿Dónde va mal?

EditText txtPhn; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button callButton = (Button)findViewById(R.id.btnCall); txtPhn = (EditText)findViewById(R.id.txtPhnNumber); callButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { try { Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setData(Uri.parse("tel:"+txtPhn.getText().toString())); startActivity(callIntent); } catch (ActivityNotFoundException activityException) { Log.e("Calling a Phone Number", "Call failed", activityException); } } }); }

EDITADO LogCat

03-09 11:23:25.874: ERROR/AndroidRuntime(370): FATAL EXCEPTION: main 03-09 11:23:25.874: ERROR/AndroidRuntime(370): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:xxx-xxx-xxxx flg=0x10000000 cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{40738d70 370:org.krish.android/10034} (pid=370, uid=10034) requires android.permission.CALL_PHONE 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at android.os.Parcel.readException(Parcel.java:1322) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at android.os.Parcel.readException(Parcel.java:1276) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1351) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1374) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at android.app.Activity.startActivityForResult(Activity.java:2827) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at android.app.Activity.startActivity(Activity.java:2933) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at org.krish.android.caller$1.onClick(caller.java:29) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at android.view.View.performClick(View.java:2485) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at android.view.View$PerformClick.run(View.java:9080) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at android.os.Handler.handleCallback(Handler.java:587) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at android.os.Handler.dispatchMessage(Handler.java:92) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at android.os.Looper.loop(Looper.java:123) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at android.app.ActivityThread.main(ActivityThread.java:3683) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at java.lang.reflect.Method.invokeNative(Native Method) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at java.lang.reflect.Method.invoke(Method.java:507) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 03-09 11:23:25.874: ERROR/AndroidRuntime(370): at dalvik.system.NativeStart.main(Native Method)`enter code here`


Asegúrese de haber agregado la etiqueta <uses-permission ... /> en un nivel correcto en el archivo AndroidManifest.xml ( fuera de la etiqueta <application ... /> pero dentro de la etiqueta <manifest ... /> ):

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.dbm.pkg" android:versionCode="1" android:versionName="1.0"> <!-- NOTE! Your uses-permission must be outside the "application" tag but within the "manifest" tag. --> <uses-permission android:name="android.permission.CALL_PHONE" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <!-- Insert your other stuff here --> </application> <uses-sdk android:minSdkVersion="9" /> </manifest>


El problema es que no solicitó el permiso del usuario. Si el dispositivo ejecuta Android 6.0 (nivel de API 23) y la aplicación targetSdkVersion tiene 23 o más, el permiso de llamada se considerará como un permiso peligroso. Por lo tanto, primero debe obtener el permiso correcto. En primer lugar, añadir

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.app.myapp" > <uses-permission android:name="android.permission.CALL_PHONE" /> ... </manifest>

en su archivo AndroidManifest.xml.

Entonces, tengo un método que se llama haciendo clic en un botón.

public void onCall(View view) { Intent callIntent = new Intent(Intent.ACTION_CALL); //use ACTION_CALL class callIntent.setData(Uri.parse("tel:0800000000")); //this is the phone number calling //check permission //If the device is running Android 6.0 (API level 23) and the app''s targetSdkVersion is 23 or higher, //the system asks the user to grant approval. if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { //request permission from user if the app hasn''t got the required permission ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CALL_PHONE}, //request specific permission from user 10); return; }else { //have got permission try{ startActivity(callIntent); //call activity and make phone call } catch (android.content.ActivityNotFoundException ex){ Toast.makeText(getApplicationContext(),"yourActivity is not founded",Toast.LENGTH_SHORT).show(); } } }


Es posible que desee probar el siguiente enfoque:

Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setData(Uri.parse("tel:"+txtPhn.getText().toString())); callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(callIntent);

Es decir, agregar la callIntent.setFlags(...) la función callIntent.setFlags(...) .


Hay dos intentos para llamar / comenzar a llamar: ACTION_CALL y ACTION_DIAL.

ACTION_DIAL solo abrirá el marcador con el número completado, pero le permite al usuario llamar o rechazar la llamada. ACTION_CALL llamará inmediatamente al número y requiere un permiso adicional.

Así que asegúrate de tener el permiso

uses-permission android:name="android.permission.CALL_PHONE"

en tu AndroidManifest.xml


Intenta agregar trim ():

callIntent.setData(Uri.parse("tel:"+txtPhn.getText().toString().trim()));


Probablemente necesites probarlo en un dispositivo real. Me enfrenté al mismo problema y funcionó en el dispositivo real. Las llamadas y el GPS a veces no funcionan como se espera en AVD.