[READ_SETTINGS权限需要在WEAR OS上启动gmaps

问题描述 投票:0回答:1

我的Android应用必须在Wear OS上启动gmaps

    Uri gmmIntentUri = Uri.parse("https://www.google.com/maps/search/?api=1&query=" +Uri.encode( string));
    Intent mapIntent = new Intent(ACTION_VIEW, gmmIntentUri);
   // mapIntent.setPackage("com.google.android.apps.maps");
    if (mapIntent.resolveActivity(activity.getPackageManager()) != null) {
        activity.startActivity(mapIntent);
    }

但是我收到一个错误,提示拒绝权限...它想要 com.google.android.wearable.READ_SETTINGS

如果我放这个

<uses-permission android:name="com.google.android.wearable.READ_SETTINGS" />

在清单中,然后我得到相同的错误。

我无法通过编程方式请求与此类似的权限

 if (ContextCompat.checkSelfPermission(activity, Manifest.permission.READ_SETTINGS)
                    == PackageManager.PERMISSION_GRANTED) {
                Log.d("permissions","granted");
            } else {
                // Show rationale and request permission.
                ActivityCompat.requestPermissions(activity,
                        new String[]{Manifest.permission.READ_SETTINGS},
                        MY_LOCATION_REQUEST_CODE);

            }

因为找不到该常数。编写完整的com.google.android.wearable.READ_SETTINGS字符串是没有用的。

我不明白为什么需要READ_SETTINGS。如何解决?

java android google-maps android-permissions wear-os
1个回答
0
投票

wearOS上的Google Maps无法处理Uri.parse("https://www.google.com/maps/search/?api=1&query=" +Uri.encode( string))或文档Uri gmmIntentUri = Uri.parse("geo:0,0?q=1600 Amphitheatre Parkway, Mountain+View, California")中建议的这种格式。同样的手机意图启动Google Maps并显示建议列表。

我的猜测是wearOS上的Maps应用是轻量级的,您只能像这样在特定城市或地区搜索内容:

// Searches for 'Main Street' near San Francisco
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?q=101+main+street");

下面的链接显示了要在Android上使用的Google Maps意图的示例:https://developers.google.com/maps/documentation/urls/android-intents

对于错误:

com.google.android.wearable.READ_SETTINGS

您不需要在权限中添加此内容,但是请检查您的wear app清单是否具有此内容:

<uses-feature android:name="android.hardware.type.watch" />
© www.soinside.com 2019 - 2024. All rights reserved.