- Как програмно включить фонарик?
- Java приложения для фонарика
- Приложения Java
- ПРИЛОЖЕНИЯ JAVA ЖАНР ОБРАЗОВАНИЕ
- Фонарик 6280
- Описание
- Фонарик 6280 Java-приложение
- Рейтинги и Отзывы (0)
- Итоги обзора
- В настоящее время нет отзывов для этого приложения.
- Также в приложениях Java
- Он-лайн регистрация
- TorchFlashLight 240×320
- Он-лайн регистрация
- Оператор Opera Mini 4.4 Multi
- mksofts.wordpress.com
- Английский для Урдуский словарь
- Теги:
- доля:
- Вам также может понравиться:
- Банглайский календарь
- Flashlight Extreme
- Torch Flashlight
- Фонарик J2ME
- Flashlight
- J2ME Flashlight
- Блок SMS
- Color Flashlight
- Java Metronome
- iQ Quiz Game
- MegaMobi 240×320
- PhysicsDictionary
- Свободный полет
- Холли Коран
- MeraMobi 176×220 Nokia и LG
- Улучшите свои навыки убеждения
- Гитарные мобильные инструменты 2
- IQ Flashlight Java
- Mobile Malay Tajweed Quran
- Daily Scriptures
- Color Flashlight
- Карманная лампа 2.8
- Torch Flashlight LED HD Review
- Мой календарь
- Colored Flashlight
- IQ Flashlight Java German
- IQ Flashlight Java French
- ПРИЛОЖЕНИЯ JAVA JAVA ИГРЫ Приложения SYMBIAN ANDROID ПРИЛОЖЕНИЯ
- PHONEKY: РИНГТОНЫ И ОБОИ
- Загрузите свои любимые приложения Java бесплатно на PHONEKY!
Как програмно включить фонарик?
Добрый день. Мне надо добавить «фонарик» в своё приложение, пробовал добавить его, он не хочет работать. Как ни крути показывает мне мой же алерт «У вашего телефона отсутствует фонарик» хотя и камера и фонарик присутствуют. Никакой толковой информации в интернете по нему не нашел. Как же всё-таки включить и выключить фонарик? Код:
import java.util.List; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.pm.PackageManager; import android.hardware.Camera; import android.hardware.Camera.Parameters; import android.os.Bundle; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.ToggleButton; public class MainActivity extens Activity < Camera camera = null; ToggleButton toggleTorch; Parameters parameters; AlertDialog.Builder builder; AlertDialog alertDialog; private final int FLASH_NOT_SUPPORTED = 0; private final int FLASH_TORCH_NOT_SUPPORTED = 1; @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.main); toggleTorch = (ToggleButton) findViewById(R.id.toggleButton1); // если камера имеет вспышку if (getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA_FLASH)) < toggleTorch .setOnCheckedChangeListener(new OnCheckedChangeListener() < @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) < // включаем фонарик if (isChecked) < if (camera == null) < camera = Camera.open(); parameters = camera.getParameters(); List flashModes = parameters .getSupportedFlashModes(); if (flashModes .contains(Parameters.FLASH_MODE_TORCH)) < parameters .setFlashMode(Parameters.FLASH_MODE_TORCH); camera.setParameters(parameters); camera.startPreview(); >else < showDialog(MainActivity.this, FLASH_TORCH_NOT_SUPPORTED); >> > else < // выключаем фонарик parameters .setFlashMode(Parameters.FLASH_MODE_OFF); camera.setParameters(parameters); camera.stopPreview(); camera.release(); camera = null; >> >); > else < showDialog(MainActivity.this, FLASH_NOT_SUPPORTED); >> @Override protected void onStop() < super.onStop(); if (camera != null) < camera.release(); >> @Override protected void onPause() < super.onPause(); if (camera != null) < camera.release(); >> public void showDialog(Context context, int dialogId) < switch (dialogId) < case FLASH_NOT_SUPPORTED: builder = new AlertDialog.Builder(context); builder.setMessage("Ваше устройство не поддерживает вспышку") .setCancelable(false) .setNeutralButton("Close", new OnClickListener() < @Override public void onClick(DialogInterface dialog, int which) < finish(); >>); alertDialog = builder.create(); alertDialog.show(); break; case FLASH_TORCH_NOT_SUPPORTED: builder = new AlertDialog.Builder(context); builder.setMessage("Ваше устройство не поддерживает вспышку") .setCancelable(false) .setNeutralButton("Close", new OnClickListener() < @Override public void onClick(DialogInterface dialog, int which) < finish(); >>); alertDialog = builder.create(); alertDialog.show(); > > >
Java приложения для фонарика
Сегодня мы возьмемся за интересный и полезный урок, а именно — научимся создавать приложение «Фонарик» для Android устройств. Приложение будет предельно простым: главное окно программы с кнопкой включить/выключить фонарик.
По поводу внешнего вида приложения, то используемая графика будет не запредельно сложной, а всего лишь фоновое изображение и пару изображений для кнопки во включенном и выключенном состоянии. Можете подготовить эти изображения сами по собственному желанию, если хотите внести в приложение свою собственную лепту, так сказать. Но если вам не хочется этого делать (мне тоже), то воспользуемся уже готовыми красивыми изображениями. Я их сам резал, поэтому возможно (так и будет) картинка включенной и выключенной кнопки немного не совпадут по своему местоположению из за неодинаковых границ границ изображений. Если вы хотите попытаться сделать лучше, вот вам оригинальное изображение для вырезания:
В архиве с изображениями, те что помечены цифрой 1 — это hdpi, 2- mdpi, 3 — ldpi.
Теперь можно переходить к созданию нового проекта, выберем Blank Activity. Для того, чтоб наш фонарик заработал, нужно в файле манифеста получить разрешения на использование вспышки камеры. Там нет такого разрешения непосредственно, так как вспышка входит в функционал камеры, поэтому нужно получить разрешение на работу с камерой и ее возможностями. Открываем файл AndroidManifest.xml и добавляем туда парочку разрешений на камеру:
uses-permission android:name="android.permission.CAMERA" /> uses-feature android:name="android.hardware.camera"/>
Теперь нужно добавить изображения кнопок в папку res/drawable, а точнее изображения hdpi, mdpi и ldpi в соответствующие папки drawable-hdpi, drawable-mdpi, drawable-ldpi. Только уберите те циферки в именах изображений (1,2,3) и проследите, чтобы в разных папках изображения включенной и выключенной кнопки имели одинаковые названия. Фон нашего приложения будет белого цвета и, будем надеяться, красиво сольется с изображениями кнопок.
Открываем файл activity_main.xml и добавим туда кнопочку ImageView, которая и будет в итоге включать и выключать фонарик:
RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:background="#FFFFFF"> ImageButton android:id="@+id/btnSwitch" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="100dip" android:src="@drawable/turn_on" android:background="@null" android:contentDescription="@null"/> /RelativeLayout>
Теперь откроем MainActivity.java и объявим необходимые переменные:
import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.pm.PackageManager; import android.hardware.Camera; import android.hardware.Camera.Parameters; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ImageButton; public class MainActivity extends Activity < ImageButton btnSwitch; private Camera camera; private boolean isFlashOn; private boolean hasFlash; Parameters params; MediaPlayer mp; @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Кнопка включения фонарика btnSwitch = (ImageButton) findViewById(R.id.btnSwitch); > >
Программу нужно оборудовать возможностью проверять, поддерживается ли работа фонарика на данном устройстве, присутствует ли там вспышка вообще. Если ее нету, то будет показываться соответствующее сообщение и приложение будет закрываться. Для того, чтобы реализовать это, тут же в MainActivity.java добавим следующий код, который в случае отсутствия на устройстве вспышки будет показывать сообщение в виде Alert Dialog и закрывать приложение:
/* * Проверяем, поддерживает ли устройство вспышку или нет */ hasFlash = getApplicationContext().getPackageManager() .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); if (!hasFlash) < //Устройство не поддерживает функцию вспышки //Показываем печальное сообщение и закрываем приложение: AlertDialog alert = new AlertDialog.Builder(MainActivity.this) .create(); alert.setTitle("Ошибка"); alert.setMessage("Ваше устройство не поддерживает работу с вспышкой!"); alert.setButton("OK", new DialogInterface.OnClickListener() < public void onClick(DialogInterface dialog, int which) < //Закрываем приложение: finish(); > >); alert.show(); return; >
Если сейчас запустить приложение на устройстве без вспышки, то вы увидите Alert Dialog с ошибкой.
Включение фонарика происходит с помощью установки режима работы камеры FLASH_MODE_TORCH. Настройка процесса включения будет происходить с помощью 2-х функций getCamera и turnOnFlash. Добавим их к коду в MainActivity.java:
//Получаем параметры камеры: private void getCamera() < if (camera == null) < try < camera = Camera.open(); params = camera.getParameters(); > catch (RuntimeException e) < Log.e("Ошибка, невозможно запустить: ", e.getMessage()); > > > /* * Включаем вспышку */ private void turnOnFlash() < if (!isFlashOn) < if (camera == null || params == null) < return; > //Проигрываем звук playSound(); params = camera.getParameters(); params.setFlashMode(Parameters.FLASH_MODE_TORCH); camera.setParameters(params); camera.startPreview(); isFlashOn = true; //Меняем изображение кнопки при переключении: toggleButtonImage(); > >
Для выключения фонарика будет использоваться настройка на режим FLASH_MODE_OFF:
/* * Выключаем фонарик */ private void turnOffFlash() < if (isFlashOn) < if (camera == null || params == null) < return; > //Проигрываем звук: playSound(); params = camera.getParameters(); params.setFlashMode(Parameters.FLASH_MODE_OFF); camera.setParameters(params); camera.stopPreview(); isFlashOn = false; //Меняем картинку кнопки: toggleButtonImage(); > >
Теперь осталось только добавить обработчик нажатий по кнопке ImageView:
/* * Обработчик события нажатий по кнопке */ btnSwitch.setOnClickListener(new View.OnClickListener() < @Override public void onClick(View v) < if (isFlashOn) < //Выключаем фонарик: turnOffFlash(); > else < //Включаем фонарик: turnOnFlash(); > > >);
Когда пользователь будет включать и выключать фонарик, изображение кнопки должно меняться. Для этого добавим метод переключения изображений при нажатии на кнопку:
/* * Переключатель смены изображения */ private void toggleButtonImage()< if(isFlashOn)< btnSwitch.setImageResource(R.drawable.turn_on); >else< btnSwitch.setImageResource(R.drawable.turn_off); > >
В принципе, уже сейчас приложение готово к работе, но нам хочется еще сделать так, чтобы при переключении кнопки проигрывался звук включения/выключения фонарика. Для этого звук сначала нужно скачать. Можете взять это, можете найти что то получше и покороче, я не нашел. Для работы со звуком, создайте в проекте новую папке res/raw и закиньте туда звуковой файл. В код файла MainActivity.java добавляем следующий код:
/* * Проигрывание звука */ private void playSound()< if(isFlashOn)< mp = MediaPlayer.create(MainActivity.this, R.raw.sound); >else< mp = MediaPlayer.create(MainActivity.this, R.raw.sound); > mp.setOnCompletionListener(new OnCompletionListener() < @Override public void onCompletion(MediaPlayer mp) < mp.release(); > >); mp.start(); >
Остается только добавить несколько важных методов, которые будут способствовать корректной работе приложения:
— onPause() — метод выключает фонарик и вводит приложение в фоновый режим работы;
— onResume() — метод включает фонарик обратно;
— onStop() — закрываем камеру.
@Override protected void onDestroy() < super.onDestroy(); > @Override protected void onPause() < super.onPause(); //Временно выключаем фонарик: turnOffFlash(); > @Override protected void onRestart() < super.onRestart(); > @Override protected void onResume() < super.onResume(); //Продолжаем работу фонарика: if(hasFlash) turnOnFlash(); > @Override protected void onStart() < super.onStart(); //Получаем для приложения параметры камеры: getCamera(); > @Override protected void onStop() < super.onStop(); //Закрываем работу камеры: if (camera != null) < camera.release(); camera = null; > >
Все! Теперь остается только протестировать приложение:
Очень неплохо, оказалось, что смещение изображений вкл/выкл оказалось еле заметным, но это на дисплее 4,5 дюйма.
Ну и перед тестированием не забудьте, что тестировать приложение работы фонарика есть смысл на устройстве, в котором есть фонарик :). Удачи!
Приложения Java
ПРИЛОЖЕНИЯ JAVA ЖАНР ОБРАЗОВАНИЕ
Фонарик 6280
Описание
Фонарик 6280 Java-приложение
Рейтинги и Отзывы (0)
Итоги обзора
В настоящее время нет отзывов для этого приложения
регистр Зарегистрируйте учетную запись PHONEKY, чтобы отправлять отзывы с вашим именем, загружать и хранить ваши любимые мобильные приложения, игры, рингтоны и обои.
Зарегистрируйтесь или Подпишите в в PHONEKY
В настоящее время нет отзывов для этого приложения.
Также в приложениях Java
Он-лайн регистрация
TorchFlashLight 240×320
Он-лайн регистрация
Оператор Opera Mini 4.4 Multi
mksofts.wordpress.com
Английский для Урдуский словарь
Теги:
доля:
Вам также может понравиться:
Банглайский календарь
Flashlight Extreme
Torch Flashlight
Фонарик J2ME
Flashlight
J2ME Flashlight
Блок SMS
Color Flashlight
Java Metronome
iQ Quiz Game
MegaMobi 240×320
PhysicsDictionary
Свободный полет
Холли Коран
MeraMobi 176×220 Nokia и LG
Улучшите свои навыки убеждения
Гитарные мобильные инструменты 2
IQ Flashlight Java
Mobile Malay Tajweed Quran
Daily Scriptures
Color Flashlight
Карманная лампа 2.8
Torch Flashlight LED HD Review
Мой календарь
Colored Flashlight
IQ Flashlight Java German
IQ Flashlight Java French
ПРИЛОЖЕНИЯ JAVA JAVA ИГРЫ Приложения SYMBIAN ANDROID ПРИЛОЖЕНИЯ
PHONEKY: РИНГТОНЫ И ОБОИ
Получите его на GOOGLE PLAY!
Загрузите свои любимые приложения Java бесплатно на PHONEKY!
Download app for mobiles Фонарик 6280Download app for mobiles — одно из лучших приложений Java бесплатно! Вам непременно понравятся его увлекательные черты. В бесплатном Java App Store от PHONEKY вы можете бесплатно скачать мобильные приложения для любого мобильного телефона, поддерживаемого Java. хороший и полезные функции этого приложения привлекут вас в течение очень долгого времени. В PHONEKY вы найдете множество других приложений и игр разных жанров: от образования и развлечений до приложений для обеспечения безопасности и навигации Java. Чтобы увидеть Топ-10 лучших программ Java для мобильных телефонов, просто сортируйте приложения по популярности.