Ich habe das in meinem Manifest definiert folgende:Android Deep Linking mit benutzerdefinierter URI
<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
android:host="gizmos"
android:scheme="example" />
</intent-filter>
</activity>
...
Und ich habe meine onCreate() als solche definiert:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
Uri data = intent.getData();
if (data != null) {
Log.d("URI",data.toString());
}
}
Dies ist in Übereinstimmung mit dem Android Dokumentation: Android Deep Linking
die Frage ist also:
Wie teste ich die URI-Deep-Linking? Gemäß der Dokumentation betreibe ich so etwas wie
adb shell am start -W -a android.intent.action.VIEW -d "example://gizmos" com.app.package
Aber das erzeugt:
Error: Activity not started, unable to resolve Intent { act=android.intent.action.VIEW dat=example://gizmos flg=0x10000000 pkg=com.app.package }
Ich habe auch die Schale mit dem Namen und der Fundstelle der Aktivität, die Abschuss Aktivität und links versucht, das Paket leer . Die einzige, die ich bekommen kann zu arbeiten, ist:
adb shell am start -W -a android.intent.action.VIEW -d " http://www.example.com/gizmos "
Aber selbst wenn ich dieses Gehen bekam, die nicht zu sagen, dass es in anderen Anwendungen funktionieren wird. BENUTZERDEFINIERTE URIs (z. B. Beispiel: // gizmos) sind in anderen Apps wie Gmail und WhatsApp nicht anklickbar. Daher ist auch das Testen im Android-Ökosystem problematisch.
Die Antwort at this stack overflow question ist nicht akzeptabel, da es die Frage nicht beantwortet, sondern nur ermutigt die Verwendung der http: // Version, ich möchte das Beispiel: // Schema zu arbeiten.
Bitte versuchen Sie nicht, mehrere Fragen in einen einzigen Beitrag zu stopfen. Selbst wenn Sie denken, dass sie verwandt sind. –