我有一个要求从电子邮件链接打开我的应用程序的要求。我尝试在AndroidManifest文件中添加以下代码。
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<!-- Accept chrome links -->
<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:scheme="http"
android:host="example.com"
android:pathPrefix="/"/>
</intent-filter>
<!-- Accept adb data flag -->
<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:scheme="http"
android:host="example.com"/>
</intent-filter>
但是从abd shell以及chrome链接都无法使用。下面是我正在尝试的adb shell命令。
adb shell am start -a android.intent.action.VIEW -d "http://example.com" QRcodeScanner.QRcodeScanner
它打开了应用程序,但随后出现错误:
QRcodeScanner.QRcodeScanner.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "QRcodeScanner.QRcodeScanner.MainActivity" on path: DexPathList[[zip file "/data/app/QRcodeScanner.QRcodeScanner-1/base.apk"],nativeLibraryDirectories=[/data/app/QRcodeScanner.QRcodeScanner-1/lib/arm64, /data/app/QRcodeScanner.QRcodeScanner-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
最后,我在某处得到一个示例,该示例指出要在活动中添加一个意图过滤器。因此,以下是适用于adb命令的代码:
[IntentFilter(new[] { Intent.ActionView },
Categories = new[] { Intent.CategoryBrowsable, Intent.CategoryDefault },
DataScheme = "http",
DataHost = "example.com",
AutoVerify = true)]
但是从chrome链接:<a href=”http://example.com”>app_link</a>
我的活动当前位于根文件夹中,但稍后将其移至根文件夹下的活动文件夹中。会有所作为吗?
此外,如何从MainActivity的URL链接中检索数据?
答案 0 :(得分:0)
如果您的活动位于“活动”文件夹下,请尝试
<activity
android:name="activitys.MainActivity"
android:label="@string/app_name">