我不确定是否有Android方法可以做到这一点,或者这只是一个普通的Java问题。功能检测机制的最佳设计是什么?我希望能够询问运行时环境是否支持功能foo(这可能在编译时确定,因此不仅仅是运行时的东西)。
更新
我正在考虑使用以下(天真的?)方法:
public enum Feautures {
GPS, DockToKeyboard;
public boolean isSupported() {
//switch statement
}
}
答案 0 :(得分:2)
答案 1 :(得分:2)
PackageManager pm = getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(new Intent(
RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (activities.size()>0); // then you have SPEECH RECOGNIZER.
或
final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER)); // then you have GPS.