Проверьте, есть ли на устройстве фонарик

public class FlashLightActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);

        Context context = this;
        PackageManager packageManager = context.getPackageManager();

        // if device support camera?
        if (packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
            //yes
            Log.i("camera", "This device has camera!");
        }else{
            //no
            Log.i("camera", "This device has no camera!");
        }


    }
}

Это рабочий код для проверки погоды в приложении есть FlashLight или нет, но как я могу использовать этот код в appwidgetprovider?


person SamJ    schedule 14.08.2013    source источник


Ответы (1)


Если вы планируете использовать его внутри любой функции, такой как onUpdate или onEnabled и т. д. из Appwidgetprovider, то все эти функции имеют context в качестве входного параметра. Вы можете использовать этот контекст для использования PackageManager, как вы делаете здесь.

Также в своем вопросе вы упоминаете flashlight. Так что просто проверьте, нужен ли вам FEATURE_CAMERA_FLASH или FEATURE_CAMERA.

Context context = this;
PackageManager packageManager = context.getPackageManager();

// if device support flash?
if (packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
    //yes
    Log.i("camera", "This device has flash supported!");
}else{
    //no
    Log.i("camera", "This device has no flash support!");
}

Надеюсь, поможет.

person Shobhit Puri    schedule 14.08.2013
comment
В классе (расширяет AppWidgetProvider). У меня есть метод, который я хочу проверить, есть ли у устройства фонарик из этого метода. - person SamJ; 15.08.2013
comment
Вы имеете в виду способность выдавать вспышку из его камеры? Я думаю, что это то, что делает код? Не так ли? - person Shobhit Puri; 15.08.2013