30/09/2018, 22:14

Các bạn vào giúp mình về code Call Intent của Android vớ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 Đỗ viết 00:17 ngày 01/10/2018

// 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);

Qu Thành viết 00:19 ngày 01/10/2018

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

X viết 00:15 ngày 01/10/2018

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

Phạm Văn Thịnh viết 00:20 ngày 01/10/2018

Bạn vui tính ghê! , 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.

Phạm Văn Thịnh viết 00:18 ngày 01/10/2018

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

Qu Thành viết 00:25 ngày 01/10/2018

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

Qu Thành viết 00:20 ngày 01/10/2018

X viết 00:20 ngày 01/10/2018

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

Phạm Văn Thịnh viết 00:22 ngày 01/10/2018

Đú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.
Bạn nhớ thêm quyền nhé!

Qu Thành viết 00:28 ngày 01/10/2018

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

Qu Thành viết 00:30 ngày 01/10/2018

private static final int codeL = 100

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

Bài liên quan
0