【问题标题】:Android Intent-Filter for Multi ScreenAndroid 多屏意图过滤器
【发布时间】:2011-08-25 03:39:35
【问题描述】:

我想使用基于方案的 Intent-Filter 从 Android 的 Web 浏览器启动我的应用程序,像这样托管在 DATA 标记中。

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

    <activity android:name=".activity.phone.MainActivityPhone" android:configChanges="orientation|keyboard"
         android:launchMode="singleTask">
        <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="my" android:host="mystore" />
        </intent-filter>
    </activity>

    <activity android:name=".activity.tablet.MainActivityTablet"  android:configChanges="orientation|keyboard"
         android:launchMode="singleTask">
        <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="my" android:host="mystore" />     
        </intent-filter>
    </activity>

如您所见,手机和平板电脑有两个 Main Activity,在 LogoActivity 中根据屏幕大小确定将打开哪个 Main Activity。但问题是当用户在网络浏览器中单击 my://mystore 链接时,有两种选择来启动 MainActivtyPhone 和 MainActivityTablet。

我想要的是只有一个合适的意图过滤器适用于 uri my://mystore 。 有什么帮助吗?谢谢。

【问题讨论】:

    标签: android intentfilter multiscreen


    【解决方案1】:

    在您的应用程序首次运行时,使用PackageManager 禁用您不想使用的活动。

    请不要发明自定义方案。请改用 HTTP URL:

    <data android:scheme="http" android:host="yourdomain.com" android:path="/something/or/another" />
    

    这样,您实际上可以在http://yourdomain.com/something/or/another 放置一个真实的网页,因此如果有人获得了您的链接但没有安装您的应用程序,他们将看到您的网页,而不是收到错误消息。

    另外,请删除android:configChanges,或处理所有配置更改。

    【讨论】:

      猜你喜欢
      • 2015-05-14
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      相关资源
      最近更新 更多