在我的应用程序中,我想使用运行时权限来获取 DeviceID ,,为此我编写了以下代码:
TelephonyManager tManager = (TelephonyManager) Constants.currentActivity.getSystemService(Context.TELEPHONY_SERVICE);
if (ActivityCompat.checkSelfPermission(Constants.currentActivity, Manifest.permission.READ_PHONE_STATE) != 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 TODO;
}
uuid = tManager.getDeviceId();
但是我在返回TODO 时收到错误,我不能运行我的应用程序。
我的LogCat出错:
Error:(175, 20) error: cannot find symbol variable TODO
我该如何解决这个问题?
答案 0 :(得分:1)
“解决”您的错误涉及单线改变,即, 改变
return TODO;
到
return -1;
或return False;
或return Null;
,基于该功能。
然而,如果你不明白为什么要做这个改变,现在应该是一个好的(我建议你这样做)时间采取相当大的一步,并尝试掌握编程本身的基本原理(不是Java或Android特定的)
答案 1 :(得分:0)
这是android自动生成的代码,告诉getDeviceId
需要授予某些权限。因此,此代码会检查应用是否具有权限。
什么是TODO =这是您必须完成的一些代码。您可以通过快捷键双移和类型待办事项查看项目中的所有待办事项,并在待办事项上按Enter键。
此处TODO: Consider calling
表示此应用没有上述权限,您必须获得许可。
此处return TODO;
表示您必须根据方法要求返回null或int等值。
如果您是Android新手,请使用this permission library向用户请求许可。
TelephonyManager tManager = (TelephonyManager) Constants.currentActivity.getSystemService(Context.TELEPHONY_SERVICE);
if (ActivityCompat.checkSelfPermission(Constants.currentActivity, Manifest.permission.READ_PHONE_STATE) != 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 TODO;
}
uuid = tManager.getDeviceId();
我希望这个解释对你有用。如果评论不清楚,请随时询问任何疑问。