当前位置: 首页 > 知识库问答 >
问题:

试图启用android应用程序的深度链接,testing intent无法启动活动

郭琨
2023-03-14

我正在尝试启用深度链接,以便某些链接启动我的应用程序。

我读了这个turoularhttps://developer.android.com/training/app-indexing/deep-linking.html,并遵循它相当接近,但当我试图通过使用adb将VIEW意图发送到应用程序来测试它时,我只是得到了错误

Error: Activity not started, unable to resolve Intent { act=android.intent.actio
n.VIEW dat=example://gizmos flg=0x10000000 pkg=com.myapp.DeepLinkActivity }

深度链接活动。JAVA

public class DeepLinkActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (getIntent().getAction() == Intent.ACTION_VIEW) {
        Uri uri = getIntent().getData();

    }

  }
}

Android清单声明deeplink活动

<activity android:name="com.myapp.DeepLinkActivity" >
        <intent-filter>

            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />


            <data
                android:host="gizmos"
                android:scheme="example" />
            <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
            <data
                android:host="www.example.com"
                android:pathPrefix="gizmos"
                android:scheme="http" />
        </intent-filter>
    </activity>

ADB命令发送视图意图

adb shell am start -W -a android.intent.action.VIEW -d "example://gizmos" com.myapp.DeepLinkActivity

但我觉得我甚至不需要活动的完整路径

adb shell am start -W -a android.intent.action.VIEW -d "example://gizmos" com.myapp

共有3个答案

储臻
2023-03-14

在清单中,您将方案定义为“超文本传输协议”,但在意图构造函数中,您使用的是“示例”

秦伯寅
2023-03-14

注释掉Android清单中的第二个数据部分。根据深度链接的谷歌文档:

“意向筛选器只能包含URI模式的单个数据元素。请创建单独的意向筛选器以捕获其他URI模式。”

陆高峰
2023-03-14

尝试完全跳过包参数。我也有同样的问题,而且效果很好。

adb shell am start-W-aandroid.intent.action.VIEW-d"示例://gizmos"

 类似资料:
  • 我是appium的新手,目前正在尝试创建一些简单的测试。我的问题是我根本无法启动正在测试的应用程序,它唯一有效的时间是使用appium-dotnet-驱动程序解决方案中包含的演示应用程序通过github提供 https://github.com/appium/appium-dotnet-driver 我已经在我的Nexus 5和几个模拟器上尝试了2个不同的应用程序,但没有任何效果(请参阅下面的附加

  • 我正在使用此代码,无法在我的移动设备上启动应用程序 TLDR: 原始错误:活动名称'。用于启动应用程序的SplashActivity不存在或无法启动!确保它存在并且是可启动的活动 下面是我的错误日志 log4j:WARN找不到记录器(org.apache.http.client.protocol.RequestAddCookies)的追加器。log4j:警告请正确初始化log4j系统。log4j:

  • 我将我的< code>MainActivity类重命名为< code>DataActivity,并用IntelliJ IDEA添加了一个新的主活动类。我将< code>AndroidManifest.xml文件更改为以下内容: 我从手机中卸载了该应用程序并删除了编译器缓存。在安装时,我得到以下异常: 启动应用:com.example.DataTest/com.example.DataTest.Da

  • 我已经在tomcat服务器上安装了应用程序。在启动和加载应用程序的过程中,我有以下堆栈跟踪的错误。如何解决这个问题? apache-tomcat-7.0.47/webapps/petclinic 2016年10月27日下午12:14:36 org。阿帕奇。卡塔琳娜。果心标准上下文起始内部 严重:ServletContainerInitializer处理javax时出错。servlet。Servle

  • 如何通过链接启动一个应用程序在B应用程序中的特定活动? 共享URI包含有关特定活动的信息。 如果用户单击B应用程序中链接,则启动应用程序的特定活动。

  • 我正在Visual Studio 2012中使用Xamarin进行Android项目。我最近从HDD升级到SSD,因此我重新安装了Windows和所有程序。 在克隆了我的git存储库并尝试在我的设备上运行该应用程序后,我无法让它运行。我能够启动一个新的hello world项目,我让它运行,但我无法让这个项目运行。 这是错误所说的: 应用程序无法启动。确保应用程序已经安装到目标设备上,并且具有可启