SDK级别检查的问题

时间:2017-08-04 10:55:56

标签: android sdk logcat

我正在4.4.2设备上运行测试,并且出现奇怪的日志,验证应该阻止这个:

logcat的:

I/dalvikvm: Could not find method android.app.AlarmManager.setAndAllowWhileIdle, referenced from method initTimer

I/dalvikvm: Could not find method requestPermissions, referenced from method MyActivity.requestPermissions

方法类:

void requestPermissions() {

        List<String> permissionsNeeded = new ArrayList<>();

        final List<String> permissionsList = new ArrayList<>();

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            //verify permission

            return;
        }
        //normal flow

}



void initTimerGetRegions(Context context) { 

    AlarmManager processTimer = Memory.getInstance().getTimer(context);
    Intent intentAlarm = new Intent(context, TimerReceiver.class);
    PendingIntent pendingIntentAlarm = PendingIntent.getBroadcast(context, 1,
            intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        processTimer.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000, pendingIntentAlarm);
    } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        processTimer.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000, pendingIntentAlarm);
    } else {
        processTimer.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000, pendingIntentAlarm);
    }


}   

显然,代码正在处理更高版本,但较低版本正在抓取这些日志。

1 个答案:

答案 0 :(得分:0)

  

奇怪的日志即将出现

他们完全正常。

  

验证应该阻止这个

没有

这些是来自Dalvik VM的消息,表明由于它正在您的课程中加载,因此很难找到某些方法。这是因为这些方法仅适用于较新版本的Android。

但是,密钥是日志行的第一个字母:I。这是一条情报信息。这不是错误。只要您不尝试执行任何这些缺失的方法,一切都很好。