I'm trying to send sms message on button click i have phone-book app that can tore contacts info and when view the contact info the user can call the contact or send an sms message for call button everything works fine when user click on button the app ask for permission then if allow then will call the number But for send sms when user click on button the app close i hope some one can help me with this problem: this is the button code in xml file:
<Button
android:id="@+id/buttonSms"
android:layout_width="241dp"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:background="@color/colorAccent"
android:text="Sms"
android:textColor="@color/white" />
and this the code in MainActivity.java file :
buttonCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
call();
}
});
buttonSms = findViewById(R.id.buttonSms);
buttonSms.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sms();
}
});
}
private void sms(){
if(checkPermission()){
Intent smsIntent = new Intent(Intent.ACTION_SENDTO);
smsIntent.setData(Uri.parse("tel:"+strNumber));
startActivity(smsIntent);
}
}
private boolean checkPermission(){
if(ActivityCompat.checkSelfPermission(ViewContactActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(ViewContactActivity.this,new String[]{Manifest.permission.CALL_PHONE},123);
return false;
}
else if(ActivityCompat.checkSelfPermission(ViewContactActivity.this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(ViewContactActivity.this,new String[]{Manifest.permission.SEND_SMS},123);
return false;
}
else
return true;
}
and AndroidManifest.xml file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.codificador.contactapp">
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".NewContactActivity"
android:label="New Contact" />
<activity android:name=".ViewContactActivity" android:label="View Contact"></activity>
<activity android:name=".EditContactActivity" android:label="Edit Contact"></activity>
</application>
</manifest>
this is the error i got when i press on sms button
2020-03-22 03:00:40.804 4706-4706/com.codificador.contactapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.codificador.contactapp, PID: 4706
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SENDTO dat=tel:xxxxxxxxx }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1937)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1616)
at android.app.Activity.startActivityForResult(Activity.java:4487)
at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:67)
at android.app.Activity.startActivityForResult(Activity.java:4445)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:720)
at android.app.Activity.startActivity(Activity.java:4806)
at android.app.Activity.startActivity(Activity.java:4774)
at com.codificador.contactapp.ViewContactActivity.sms(ViewContactActivity.java:70)
at com.codificador.contactapp.ViewContactActivity.access$100(ViewContactActivity.java:15)
at com.codificador.contactapp.ViewContactActivity$2.onClick(ViewContactActivity.java:54)
at android.view.View.performClick(View.java:6294)
at android.view.View$PerformClick.run(View.java:24770)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)