从Android上的Chrome打开位置设置活动

时间:2017-09-07 14:54:11

标签: android google-chrome web browser location

我正尝试使用Android Intents按钮点击Chrome(在Android上)打开位置设置。我正在关注条码扫描器示例并尝试以类似的方式对网址进行编码。 对于位置,我试过这个: -

<Page...>
    <Page.Resources>
        <locationofyourconverter:StatusConverter x:Key="StatusConverter" />
    </Page.Resources>

    ...

    <Ellipse Fill={Binding Status, Mode=OneWay, Converter={StaticResource StatusConverter}} />

我也尝试使用它打开设置: -

const uri = "intent://com.google.android.gms.location.settings.GOOGLE_LOCATION_SETTINGS#Intent;action=com.google.android.gms.location.settings.GOOGLE_LOCATION_SETTINGS;end"

或者

const uri = "intent://ACTION_SETTINGS#Intent;action=android.provider.Settings.ACTION_SETTINGS;end"

但似乎没有任何效果。任何帮助表示赞赏。

我使用href标签将其附加到按钮。

1 个答案:

答案 0 :(得分:4)

因为设置活动不支持BROWSABLE类别,因此您无法直接从Android Intents打开位置设置(有关详细信息,请查看this Dickeylth的问题和answerRafal Malek)。但您可以通过自定义Android应用程序100%执行此操作,Deep Links通过<category android:name="android.intent.category.BROWSABLE"/>支持自定义活动,例如that教程。

在这种情况下,您的应用SettingsActivity代码应该是:

public class SettingsActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        startActivityForResult(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0);
    }

}

AndroidManifest.xml部分为SettingsActivity

<activity android:name=".SettingsActivity">
    <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="open.location.settings"
            android:scheme="http"/>
    </intent-filter>

</activity>

以及最后,HTML文件中SettingsActivity的“深层”链接:

<a href="http://open.location.settings">Open Location Settings</a>

似乎,如果您不想在用户端安装应用,您也可以在Instant Apps中执行此操作。有关即时应用程序链接的详细信息,您可以找到here