特征检测

时间:2011-05-12 22:45:58

标签: java android

我不确定是否有Android方法可以做到这一点,或者这只是一个普通的Java问题。功能检测机制的最佳设计是什么?我希望能够询问运行时环境是否支持功能foo(这可能在编译时确定,因此不仅仅是运行时的东西)。

更新

我正在考虑使用以下(天真的?)方法:

public enum Feautures {
    GPS, DockToKeyboard;

    public boolean isSupported() {
        //switch statement
    }
}

2 个答案:

答案 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.