实施到我的应用程序的深层链接后,应用程序图标不出现

Mis*_* JJ 3 android android-studio

我正在 Android Studio 中开发一个应用程序,它运行得很好,但是在实现了我的启动活动的深层链接后,我的应用程序没有菜单中的应用程序图标,我知道该应用程序已安装,因为在“设置”>“应用程序”中它出现。我知道问题出在manifest.xml 中,所以我会在下面留下一份副本。

\n\n

顺便说一句,如果您正在阅读本文,我很想听听您的解决方案,谢谢。

\n\n
<?xml version="1.0" encoding="utf-8"?>\n<manifest xmlns:android="http://schemas.android.com/apk/res/android"\n    package="com.dev.misterj.nocherd">\n\n    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />\n    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />\n    <uses-permission android:name="android.permission.INTERNET" />\n    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />\n    <uses-permission android:name="android.permision.CALL_PHONE"/>\n    <uses-permission android:name="android.permission.MANAGE_OWN_CALLS"/>\n    <uses-permission android:name="android.permission.READ_CALL_LOG"/>\n    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>\n\n\n    <meta-data\n        android:name="com.google.android.geo.API_KEY"\n        android:value="AIzaSyAiJNpq-********************" />\n\n    <application\n        android:allowBackup="true"\n        android:icon="@mipmap/ic_launcher"\n        android:label="@string/app_name"\n        android:roundIcon="@mipmap/ic_launcher_round"\n        android:supportsRtl="true"\n        android:usesCleartextTraffic="true"\n        android:networkSecurityConfig="@xml/network_security_config"\n        android:theme="@style/AppTheme">\n\n        <activity android:name=".StartActivity">\n            <intent-filter>\n                <action android:name="android.intent.action.MAIN" />\n                <category android:name="android.intent.category.LAUNCHER" />\n                <action android:name="android.intent.action.VIEW"/>\n                <category android:name="android.intent.category.DEFAULT"/>\n                <category android:name="android.intent.category.BROWSABLE" />\n\n                <!-- Accepts URIs that begin with "https://myapp.com/place\xe2\x80\x9d -->\n                <data android:scheme="https" android:host="myapp.com"  android:pathPrefix="/place"  />\n                <!-- Accepts URIs that begin with "myapp://place\xe2\x80\x9d -->\n                <data android:scheme="myapp" android:host="place" />\n            </intent-filter>\n        </activity>\n\n\n        <activity\n            android:name=".MainActivity"\n            android:label="@string/app_name"\n            android:theme="@style/AppTheme.NoActionBar">\n        </activity>\n\n\n</manifest>\n
Run Code Online (Sandbox Code Playgroud)\n

S.A*_*hid 7

您应该分离意图过滤器,而且您的清单文件格式不正确。您应该关闭应用程序标签。您可以使用 google chrome 等外部应用程序打开它,它会告诉您 XML 的格式是否不正确。

<activity android:name=".StartActivity">
    <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    <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="myapp" android:host="place"/>

    </intent-filter>

    <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="https" android:host="myapp.com" android:pathPrefix="/place" />
      </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

当您的意图是声明唯一的 URL(例如方案和主机的特定组合)时,创建单独的过滤器非常重要,因为<data>同一意图过滤器中的多个元素实际上会合并在一起,以考虑其组合属性的所有变体。如果你把它们结合起来,它实际上支持https://place并且也支持myapp://myapp.com/place。所以你应该把它们分开。