Dalam aplikasi Android saya, saya harus melakukan panggilan telepon ke nomor tertentu dengan mengklik tombol. Saya telah menulis yang berikut untuk itu, ini berfungsi dengan baik di ponsel saya.

Kode yang sama tidak berfungsi untuk seluler klien, ia mengalami Galaxy 5, apakah ada alasan untuk ini

public void onClick(View v) {
    String number = "123456789";
    Intent intent = new Intent(Intent.ACTION_CALL);
    intent.setData(Uri.parse("tel:" + number));
    startActivity(intent);
}

Izin yang diberikan dalam manifest.xml

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

Ada yang bisa bantu saya.

1
Subramanian Raj 26 Mei 2015, 19:04
Apakah itu nomor darurat?
 – 
Dhaval Patel
26 Mei 2015, 19:06
Tidak ada nomor telepon biasa
 – 
Subramanian Raj
26 Mei 2015, 19:07
Apakah Anda mendapatkan pengecualian?
 – 
Gordak
26 Mei 2015, 19:15
Tidak terkecuali datang, hanya saja itu tidak berfungsi di Galaxy 5 (BUKAN membuat panggilan telepon) ... sama berfungsi dengan sempurna di ponsel saya
 – 
Subramanian Raj
26 Mei 2015, 19:33

1 menjawab

Jawaban Terbaik

Jika metode ini ada di dalam MainActivity` Anda, Anda harus memanggilnya seperti:

    this.startActivity(intent);

//  ^ refers to MainActivity instance

Jika ada kelas lain untuk Listener yang menurut Anda harus dapat melihat MainActivity Anda karena seharusnya memulai maksud...

Untuk menghindari ini, Anda dapat melakukan beberapa solusi:

Buat MainActivity Anda terlihat di Listener (buat atribut khusus di dalam listener dan isi menggunakan konstruktor Listener khusus yang menerima aktivitas).

Coba ini:

Intent intent = new Intent(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:" + number));
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addFlags(Intent.FLAG_FROM_BACKGROUND);
        startActivity(intent);
1
Jordi Castilla 26 Mei 2015, 19:41
Terima kasih saya memeriksanya sekarang
 – 
Subramanian Raj
26 Mei 2015, 19:30