0

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)
PRO
  • 21
  • 6

0 Answers0