Acceso directo a la aplicación de Android 의 intent extra 데이터 타입 | por jh kim | julio de 2021
위 Desarrollador 문서 대로 Atajo 을 만들 때, intención de atajo
«Java.lang.IllegalArgumentException: valor incorrecto en la clave PersistableBundle = valor xx = yy»
결론 부터 말하면 위 crash 나는 이유 는 Shortcut 의 intent 에는 persistent Bundle 타입 의 데이터 만 전달할 댤 싸는 싸는 싸는 에는 에는
shortcutInfoCompat 객체 의 setIntent 메소드 를 살펴보면 아래와 같다.
/**
* Sets the intent of a shortcut. Alternatively, @link #setIntents(Intent[]) can be used
* to launch an activity with other activities in the back stack.
*
* <p>This is a mandatory field when publishing a new shortcut.
*
* <p>The given @code intent can contain extras, but these extras must contain values
* of primitive types in order for the system to persist these values.
*/
@NonNull
public Builder setIntent(@NonNull Intent intent)
return setIntents(new Intent[]intent);
여기서 «los extras deben contener el valor del tipo original» 이렇게 extras 의타 입을 제한 한다. 이 tipo primitivo 의 데이터 를 저장 하는 paquete 이 Paquete persistente이고 이를 통해서 데이터 를 전달 해야만 Atajo 생성 시 에 se bloquea 나지 않는다. – Documentación de PersistableBundle
참고 로 PersistableBundle 에 담을수 있는데 이터 형식 은 아래와 같다.
– Entero y Entero[],
– Doble y doble[],
– Larga y larga[],
– Cuerdas y cuerdas[],
– booleano y booleano[],
-Valor nulo
참고: https://medium.com/@gabornovak/android-7-1-app-shortcuts-2cc251f562c3
결론
Intención de acceso directo de la aplicación de Android 에 데이터 를 전달 하고 싶다면 datos sin procesar 만담 을 수 있는 PersistableBundle 객체 를 이용해 싼.