最近我一直在为 Android Wear 2.0 制作一个 Bus Checker 应用程序,作为一个独立的应用程序,以便 iOS 用户也可以使用它。
我显然正在获取手表的位置以获取当地的巴士站。这意味着我需要使用以下权限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
尽管我的华为手表可以通过手机获取“手表”的位置,但在将应用程序发布到 Google Play 商店时,它只支持一款支持 GPS 的设备:LG Watch Urbane 2nd Edition LTE。
我真的不知道在这里做什么,我想为没有 GPS 的设备发布我的应用程序,只从手机获取 GPS,但是要从手机获取 GPS,我需要这些权限,而这些权限会导致华为手表和其他非 GPS 设备将不受支持。
我尝试将其添加到我的清单中以测试是否支持华为手表:
<uses-feature android:name="android.hardware.LOCATION" android:required="false" />
<uses-feature android:name="android.hardware.location.GPS" android:required="false" />
<uses-feature android:name="android.hardware.location.NETWORK" android:required="false" />
但不幸的是,它没有用。兼容性绝对基于权限,而不是所需的功能。我也尝试了一个空白的 Hello World 应用程序,但无济于事。
如果有任何相关性,这是我的应用清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.buschecker.williamvenner.buschecker">
<uses-feature android:name="android.hardware.type.watch" android:required="true" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.VIBRATE" />
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:supportsRtl="true"
android:theme="@android:style/Theme.DeviceDefault">
<uses-library android:name="com.google.android.wearable" android:required="false" />
<activity android:name=".MainActivity" android:label="@string/app_name"
android:theme="@android:style/Theme.DeviceDefault.Light">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".BusStopView"
android:theme="@android:style/Theme.DeviceDefault.Light">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
我的摇篮:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.buschecker.williamvenner.buschecker"
minSdkVersion 25
targetSdkVersion 25
versionCode 1
versionName "1"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.support:wearable:2.0.0-beta2'
compile 'com.google.android.gms:play-services-wearable:10.0.1'
compile 'com.google.android.gms:play-services-location:10.0.1'
compile 'com.mcxiaoke.volley:library:1.0.19'
provided 'com.google.android.wearable:wearable:2.0.0-beta2'
wearApp project(':app')
}
我的项目结构可以在这里找到。