如何解决runTime权限错误?

时间:2018-04-08 09:43:34

标签: java android android-permissions

在我的应用程序中,我想使用运行时权限来获取 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

我该如何解决这个问题?

2 个答案:

答案 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();

我希望这个解释对你有用。如果评论不清楚,请随时询问任何疑问。