본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] AutoFill Service 란 녀석이 나타났다.

by 돼지왕왕돼지 2018. 12. 9.
반응형



android autofill service, Android O, android:autofillhints, autofill service, autofill with google, autofillhints, custom autofill service, IMPORTANT_FOR_AUTOFILL_NO, login 정보, oreo, setautofillhints, setImportantForAutofill, webview autofill, 개인정보 auto fill, 신용카드 정보, 전화번호, 주소


-

안드로이드 O (Oreo) 부터 autofill service 가 나타났다.

이 녀석은 user 가 신용카드 정보, login 정보, 주소, 전화번호 등의 개인정보를 쉽게 auto fill 하는 것을 도와준다.



-

이 autofill 은 framework 에서 자동으로 다 해주는 것은 아니다.

Settings -> System -> Language -> Advanced -> Autofill service 를 통해서 Autofill 을 관리할 service 를 지정할 수 있다.

기본 설정은 “Autofill with Google” 이다.



-

Autofill with Google 은 Chrome 61 이상이 설치되어 있다면 가능하다.



-

개발자들이 이걸 깊이 알아야 하는 이유가 있나?


아주 깊게까진 아니지만 알아야 하는 정보가 있다.

대부분의 경우는 Autofill service 가 적재적소에서 잘 작동한다.

하지만 제대로 작동 안 하는 케이스도 있을 수 있고, 우리가 의도적으로 어떤 autofill 을 시키고 싶을 수도 있다.


xml 에서는 android:autofillHints 를 지정해주면 되고,

코드로는 setAutofillHints() 를 호출해주면 된다.


값은 user name, password, email address, phone, postal address, postal code, credit card number 등등등이 있다.

View 에 있는 const 이니 해당 reference 를 확인해보면 되겠다.

https://developer.android.com/reference/android/view/View.html#setAutofillHints(java.lang.String...)


WebView 를 사용하는 경우에는 html 에 autocomplete attribute 를 넣어주면 된다.

https://developers.google.com/web/updates/2015/06/checkout-faster-with-autofill



-

AutoFill 이 작동하지 않길 바랄 수도 있다. 예를 들면 Captcha 와 같은 경우..

이 경우에는 setImportantForAutofill() 메소드를 통해서 IMPORTANT_FOR_AUTOFILL_NO 와 같은 옵션을 주면 된다.

매칭되는 xml 은 android:importantForAutofill 이다.


값은 auto, yes, no, yes exclude descendants, autofill, no exclude descendants 등이 있는데

이 옵션들 역시 view 에 있는 const 들을 사용하면 된다.

https://developer.android.com/reference/android/view/View.html#setImportantForAutofill(int)



-

물론 깊게 알아야 하는 경우도 있다.

Autofill Service 를 직접 개발하고 싶은 경우이다.



-

참고 자료

https://android-developers.googleblog.com/2017/11/getting-your-android-app-ready-for.html

https://developer.android.com/guide/topics/text/autofill.html#providing_hints_for_autofill




반응형

댓글0