0
私のAndroidプロジェクトでは、minSdkVersion
が19
とtargetSdkVersion
26
にマニフェストファイルで設定されています。 Javaファイルの一つで私は2つの異なるAPIのは、Androidの現在のバージョンをチェックするためにif文を使用して使用してアラームをスケジュール:Android LintフラグNewAPIエラーが発生しない場所
private void scheduleAlarm(AlarmManager alarmManager, long targetTime, PendingIntent pendingIntent, Intent intent) {
if(VersionCheckUtils.isLollipopOrLater()) { // Lollipop is version 21
// Code for versions after Lollipop
logAlarm(targetTime, pendingIntent, intent, "Lollipop");
alarmManager.setAlarmClock(new AlarmManager.AlarmClockInfo(targetTime, pendingIntent),
pendingIntent);
}
else {
// Code for older versions
logAlarm(targetTime, pendingIntent, intent, "Kitkat");
alarmManager.setExact(AlarmManager.RTC_WAKEUP, targetTime, pendingIntent);
}
}
今リントはif
文やレポートにこのエラーを分析していません。
NewApi: Calling new methods on older versions
../../src/main/java/org/bee/beezone/trafficcontrol/AlarmScheduler.java:61: Call requires API level 21 (current min is 19): android.app.AlarmManager#setAlarmClock
を
このような状況にどう対処できますか?コードは実際に安全であるべきですが、Android lintはこれを理解していないようです。私はGradleのビルドファイルに以下の行を追加することによって、「NewApi」のチェックを無効にした最後に
:
android {
...
lintOptions {
disable 'NewApi'
}
}
は、この種の状況に対処するための良い方法はありますか?
はい、これはsug質問に酔った。 –