Извлеките намерение вызова из фрагмента и вернитесь к нему - PullRequest
0 голосов
/ 21 июня 2019

У меня проблемы с запуском телефонного набора и последующим возвратом к приложению при нажатии кнопки «Назад». Приведенная ниже функция вызова прекрасно работает в обычном режиме, но закрывает приложение при вызове из фрагмента.

    call.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (driverFoundID != null) {
                    String id = driverFoundID;
                    final DatabaseReference getDrivesrnameAndMobile = 

FirebaseDatabase. getInstance().getReference().child("Users").child("Drivers").child(id);
                    getDrivesrnameAndMobile.addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {
                            if (dataSnapshot.child("name").exists() && dataSnapshot.child("mobile").exists()) {
                                String name = dataSnapshot.child("name").getValue().toString();
                                String mobile = dataSnapshot.child("mobile").getValue().toString();
                                dialContactPhone(mobile);
                            } else {
                                snackbarShow("Driver credentials missing");
                            }
                        }

                        @Override
                        public void onCancelled(DatabaseError databaseError) {
                            snackbarShow(databaseError.getMessage().toString());
                        }
                    });
                } else {
                    snackbarShow("Driver credentials missing");
                }
            }
        });

//Funtion
private void dialContactPhone(final String phoneNumber) {
startActivity(new Intent(Intent.ACTION_DIAL, Uri.fromParts("tel", 
phoneNumber, null)));
}

1 Ответ

0 голосов
/ 21 июня 2019

Для фрагмента

private void dialContactPhone(final String phoneNumber) {

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" + phoneNumber));
getActivity().startActivity(intent);

}
...