我开始研究新的Android Wear 2.0 Api专门的并发症。我发现Complications将默认为提供商也支持的“最简单”支持类型,例如当兼容性支持TYPE_SHORT_TEXT以及TYPE_RANGED_VALUE时,Android Wear Battery Life将默认为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下),如手表电池,世界时钟等。
有什么想法吗?