Я использую pass sdk v1.2.1, в соответствии с programming guide существует способ изменения текста в режиме ожидания, отображаемого в диалоговом окне отпечатка пальца. Руководство говорят, что вы должны проверить, если функция Spass.DEVICE_FINGERPRINT_AVAILABLE_PASSWORD
это позволит вызвать changeStandbyString
, что-то вроде этого:Samsung pass sdk change standby text в диалоге отпечатков пальцев
if(pass.isFeatureEnabled(Spass.DEVICE_FINGERPRINT_AVAILABLE_PASSWORD)) {
mSpassFingerprint.changeStandbyString("Touch your fingerprint or press the button for launching own menu”);
}
Я пытаюсь использовать его на Galaxy S5 с Android 6.0 и Galaxy S5 Android 5.xx как в I получить исключение
IllegalStateException: setStandbyString is not supported.
что это кажется немного странным, что исключение вызывается, если метод внутри changeStandbyString
возвращает истину, которая оказывается тот же самый метод вызывается, когда вы проверяете
isFeatureEnabled(Spass.DEVICE_FINGERPRINT_AVAILABLE_PASSWORD);
так выглядит что-то не так, любая идея?
Это код, сгенерированный при отладке с андроида студии:
public void changeStandbyString(String var1) {
this.f();
if(this.d()) {
throw new IllegalStateException("setStandbyString is not supported.");
} else if(var1 == null) {
throw new IllegalArgumentException("the standby text passed is null.");
} else if(var1.length() > 100) {
throw new IllegalArgumentException("the standby text passed is longer than 100 characters.");
} else {
this.m = var1;
}
}
public boolean isFeatureEnabled(int var1) {
if(this.a == null) {
throw new IllegalStateException("initialize() is not Called first.");
} else {
switch(var1) {
case 0:
return this.a.a();
case 1:
case 2:
return this.a.b();
case 3:
return this.a.c();
case 4:
return this.a.d();
default:
throw new IllegalArgumentException("type passed is not valid");
}
}
}
Обратите внимание, что метод d()
является один называется как в ситуации, когда вы проверяете на признакам, чтобы увидеть, если это позволит и при изменении текст, похоже, что это должно быть в changeStandbyString
if(!this.d())
, как это происходит в других методов, таких как:
public void setDialogTitle(String var1, int var2) {
this.f();
if(!this.b()) {
throw new IllegalStateException("setDialogTitle is not supported.");
} else if(var1 == null) {
throw new IllegalArgumentException("the titletext passed is null.");
} else if(var1.length() > 256) {
throw new IllegalArgumentException("the title text passed is longer than 256 characters.");
} else if(var2 >>> 24 != 0) {
throw new IllegalArgumentException("alpha value is not supported in the titleColor.");
} else {
this.f = var1;
this.g = var2 + -16777216;
}
}
Здесь throw new IllegalStateException("setDialogTitle is not supported.");
происходит только тогда, когда this.b()
возвращает ложь, которая является м ethod, вызванный от isFeaturedEnabled
, когда флаг Spass.DEVICE_FINGERPRINT_CUSTOMIZED_DIALOG
(Spass.DEVICE_FINGERPRINT_CUSTOMIZED_DIALOG = 2
).