我开始研究新的 Android Wear 2.0 Api 的特别并发症。我发现并发症将默认为提供程序也支持的“最简单”支持的类型,例如当并发症支持 TYPE_SHORT_TEXT 和 TYPE_RANGED_VALUE 时,Android Wear 电池寿命将默认为 TYPE_SHORT_TEXT。所以我想知道是否有一种方法可以访问提供者支持的类型(在作为服务的提供者的清单中添加),如下所示。
<meta-data android:name="android.support.wearable.complications.SUPPORTED_TYPES"
android:value="RANGED_VALUE,SHORT_TEXT,LONG_TEXT"/>
有没有办法访问提供者的支持类型数组?
编辑:
我找到了通过读取需要声明服务支持类型的清单元数据来访问提供程序支持类型的方法。
ComponentName service = new ComponentName(this, DataProvider.class);
try {
Bundle bundle = getPackageManager().getServiceInfo(service, PackageManager.GET_META_DATA).metaData;
if(bundle != null) {
for (String key : bundle.keySet()) {
Object value = bundle.get(key);
Log.d(TAG, String.format("%s %s (%s)", key,
value.toString(), value.getClass().getName()));
}
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
虽然我仍然想知道如何访问受支持的 Google 系统构建提供程序类型(在 AppName:Android Wear 下),例如手表电池、世界时钟等。
有任何想法吗?