Vinculación profunda de Android con URI personalizado
Tengo lo siguiente definido en mi manifiesto:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.app.package">
...
<activity
android:name="app.myActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="www.example.com"
android:pathPrefix="/gizmos"
android:scheme="http" />
<!-- note that the leading "/" is required for pathPrefix-->
<!-- Accepts URIs that begin with "example://gizmos”-->
<data
andr,oid:host="gizmos"
android:scheme="example" />
</intent-filter>
</activity>
...
Y he definido mi onCreate () como tal:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
Uri data = intent.getData();
if (data != null) {
Log.d("URI",data.toString());
}
}
Esto está de acuerdo con la documentación de Android:Vinculación profunda de Android
Entonces la pregunta es:
¿Cómo pruebo el enlace profundo de URI? De acuerdo con la documentación, ejecuto algo como
adb shell am start -W -a android.intent.action.VIEW -d "ejemplo: // gizmos" com.app.package
Pero esto produce:
Error: Actividad no iniciada, no se puede resolver Intención {act = android.intent.action.VIEW dat = ejemplo: // gizmos flg = 0x10000000 pkg = com.app.package}
También probé el shell con el nombre y la referencia de la actividad, la actividad del iniciador y dejé el paquete en blanco. El único que puedo poner a trabajar es:
adb shell am start -W -a android.intent.action.VIEW -d "http://www.example.com/gizmos"
Pero incluso si conseguí esto, eso no quiere decir que vaya a funcionar en otras aplicaciones. Los URI PERSONALIZADOS (por ejemplo: // gizmos) no se pueden hacer clic en otras aplicaciones como Gmail y WhatsApp, por lo que las pruebas dentro del ecosistema de Android también son problemáticas.
La respuestaen esta pregunta de desbordamiento de pila no es aceptable ya que no responde la pregunta, sino que solo alienta el uso de la versión http: //, quiero que el esquema example: // funcione.