Как исправить мое приложение, которое вылетает вместо звонка?

1

Я пытаюсь создать приложение, которое запускает вызов, когда получает конкретное сообщение. Все в порядке, кроме приложения, вылетает, когда оно должно начать вызов.

Проблема на линии, где я использую startActivity(). Я не знаю, почему это терпит крах. Кто-нибудь может мне помочь?

public class SmsBroadcastReceiver extends BroadcastReceiver {

    public static final String SMS_BUNDLE = "pdus";

    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle intentExtras = intent.getExtras();
        //....
            String cod = "message";
            if(smsBody.compareTo(cod) == 0){
                CallClass obj = new CallClass();
                obj.call();
            }
        //....            

private class CallClass extends AppCompatActivity {

       public void call() {
           Intent callIntent = new Intent(Intent.ACTION_CALL);
           callIntent.setData(Uri.parse("tel:+107222222"));
           startActivity(callIntent);
        }
    }
Теги:

1 ответ

1

Убедитесь, что у вас есть это в вашем AndroidManifest.xml

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

И ваш метод, вероятно, должен выглядеть так:

public void call(String message, Context context) {
    if(message.compareTo("SpecificMessage")){

    Intent callIntent = new Intent(Intent.ACTION_CALL);
    callIntent.setData(Uri.parse("tel:+40773733585"));
    startActivity(callIntent);
    }

}
  • 0
    Я обновил вопрос. Я создал новый класс, который расширяет AppCompatActivity чтобы я мог без проблем использовать startActivity() . Но приложение все равно вылетает.
  • 0
    Вылетает ли он сразу после вызова startActivity? Попробуйте обернуть startActivity (callIntent); с блоком try / catch try {startActivity (callIntent);} catch (SecurityException e) {e.printStackTrace ();} Установить точку останова на e.printStackTrace (); линия. Если это не удается из-за безопасности, вам нужно проверить, дал ли пользователь разрешение на использование функции телефона, прежде чем пытаться ее использовать.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню