4

Я использую 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() является один называется как в ситуации, когда вы проверяете на признакам, чтобы увидеть, если это позволит и при изменении текст, похоже, что это должно быть в changeStandbyStringif(!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).

ответ

0

Справочник по программированию неверен. Если isFeatureEnabled(Spass. DEVICE_FINGERPRINT_AVAILABLE_PASSWORD) возвращает false, то эта функция может быть активирована. Вы можете проверить code samples, чтобы более подробно ознакомиться с этой функцией.