我知道这个问题在这里已经回答了几次,但我遇到了一个稍微大一点的问题,因为Android Studio给了我以前没有遇到过的错误(我是android编程的新手)。 / p>
在AndroidManifest.xml
内,我有以下代码:
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
在java类中,我有以下代码:
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:123456789"));
startActivity(callIntent);
我的问题是startActivity(callIntent);
给了我以下错误:
然后引导Android Studio添加此内容:
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:123456789"));
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
startActivity(callIntent);
然后,Android工作室给出了最后一个错误:
我不知道我在这里做错了什么,请有人帮忙吗?
答案 0 :(得分:4)
在你的情况下使用this
,你正在考虑View.OnClickListener
(因为onClick()
它是覆盖方法的内部类)。您需要在它之前添加您的Activity类名称(下面的示例为MainActivity
)。
更改
ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE)
到
ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE)