Я пытаюсь создать приложение, которое запускает вызов, когда получает конкретное сообщение. Все в порядке, кроме приложения, вылетает, когда оно должно начать вызов.
Проблема на линии, где я использую 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);
}
}
Убедитесь, что у вас есть это в вашем 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);
}
}
AppCompatActivity
чтобы я мог без проблем использоватьstartActivity()
. Но приложение все равно вылетает.