Code Call Intent của Android bị lỗi

Không biết mình sai chỗ nào luôn cứ bị dính phải lỗi nó không cho StarActivity mà mình tham khảo code trên mạng thì y chang mà họ vẫn star được. Mình đã thêm vào dòng Call vào mục AndroiManifes.xml luôn rồi mà không biết nó gặp phải lỗi gì. Mong các bạn giúp đỡ

// Tạo một Intent với mục tiêu là GreetingActivity.
// Intent(trang hiện tại, trang đích)
Intent intent = new Intent(this,GreetingActivity.class);

// Các dữ liệu gửi kèm
intent.putExtra(“firstName”,firstName);
intent.putExtra(“lastName”, lastName);

// Yêu cầu start Activity chỉ định trong Intent.
// (Không cần phản hồi từ Activity được gọi)
this.startActivity(intent);

1 Like

Minh vẫn chưa hiểu ý của bạn lắm -_-

Chạy nó báo lỗi như nào sao không đưa lên? :v

1 Like

Bạn vui tính ghê! :slight_smile: , bạn phải nhìn Logcat thì mới biết lỗi là gì chứ :v
Bạn thử xem mình xin quyền chưa, cũng có thể bạn dùng API cao hơn 21 nên bạn phải hiện thông báo cấp quyền.
Bạn thử Uri.pare(“tel:” +number) coi có được không.
Còn nếu không thì đăng logcat hoặc bạn đăng dòng có hai từ “Caused by:” lên google tìm lỗi thì nhanh hơn.

1 Like

Có hai loại Intent lẫn bạn ơi :smile:

1 Like

Uploading…
đây bạn à giúp mình với

Từ api 23 thì thường sẽ gặp tình trạng này.
Thử dùng try catch:

try {
    // code here
} catch (SecurityException e) {
   // ... catch
}

hoặc:

if (this.checkSelfPermission(Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
    // code here
}

Hoặc đơn giản là đưa trỏ chuột vào dòng hiện lỗi, bấm Alt + enter + enter để tự động thêm vào vài dòng
https://developer.android.com/training/permissions/requesting.html

1 Like

Đúng là mình đoán do nâng cấp trên android phiên bản mới

private static final int codeL = 100;
    @TargetApi(Build.VERSION_CODES.M)
    public void btnClickCall(View view) {
        if (ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
            Intent intent = new Intent(Intent.ACTION_CALL);
            intent.setData(Uri.parse("tel:" + String.valueOf(editTextNhaplieu.getText().toString())));
            startActivity(intent);
        }else {
            if(shouldShowRequestPermissionRationale(Manifest.permission.CALL_PHONE)){
                Toast.makeText(MainActivity.this, "Ban phai cap quyen cho toi", Toast.LENGTH_SHORT).show();
            }
            requestPermissions(new String[]{Manifest.permission.CALL_PHONE},codeL);
        }
    }

Bạn cũng có thể xem thêm ở đây https://developer.android.com/training/permissions/requesting.html. :slight_smile:
Bạn nhớ thêm quyền nhé!

1 Like

Cảm ơn các bạn nhiều lắm để mình thử xem sao :slight_smile:

mà này bạn dòng private static final int codeL = 100 và dòng requestPermissions(new String[]{Manifest.permission.CALL_PHONE},codeL);
}
mình vẫn chưa hiểu rõ mấy

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?