Lib_jsr256 - Работа с сенсорами телефона
Вложений: 1
Библиотека немного доработана. Теперь можно обращаться к любым сенсорам.
Для начала неплохо бы вызвать функцию get_version, которая вернет вам установленную на телефоне версию JSR256 или строку "null" если данный JSR там не установлен. Собственно, если вернется "null", то вызов других функций библиотеки может привести к зависанию приложения. Следующим шагом неплохо бы получить весь список сенсоров, которые есть в телефоне. Для этого служит функция get_list, которая вернет результат в виде строки, разделенной символом "|" в формате: имя_датчика|имя_сенсора|контекст|.... Мой телефон, к примеру, выдал такой список: PHP код:
Датчики axis_x, axis_y, axis_z принадлежат к сенсору acceleration, а в сенсоре battery_charge содержится два датчика: battery_charge и charger_state. Также есть счетчик шагов, датчик наличия гарнитуры и другие, но сейчас они меня мало интересуют. Теперь, если я хочу получать данные от какого либо сенсора (не датчика!) я вызываю функцию Init, которая принимает 3 параметра: имя сенсора, контекст сенсора и количество датчиков в сенсоре. К примеру, мне нужно прослушать датчики сенсора акселерометра. Тогда вызывать нужно так: Init('acceleration', 'user', 3); а для прослушивания датчика состояния батареи нужно вызывать: Init('battery_charge', 'device', 2); Ну и конечно получить данные от датчика сенсора можно функцией get_value, которая принимает только номер датчика. Таким образом, пример программы для прослушивания, к примеру, состояния батареи: PHP код:
Вот другой пример, черный шарик, который катается по экрану в зависимости от наклона аппарата: PHP код:
Если у вас есть другие интересные датчики обязательно попробуйте поопрашивать их. |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Идём к iPhone играм :)
_________________ Sony ericsson W710 - есть акселерометр (о Idou и говорить не хочу) |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Спасибо большое, odd!
На Nokia 5800 пока не удалось заставить работать тестовый пример. Пытаюсь докопаться до истины. Установка плагина для поддержки JSR256 не помогла: http://www.forum.nokia.com/info/sw.n...r_s60_5_0.html Upd. Всё работает. Осталось выяснить, работало ли до установки плагина =) С нетерпением жду либы с возможностью обращения к другим устройствам. Ещё раз спасибо! =) А возможно ли реализовать обработку случая, когда нет поддержки акселерометра, чтобы приложение не вылетало? Nokia E61, например, ругается на необработанное исключение. |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Nokia N82 пример не завелся, пишет "Необработаное исключение". Просьба Bruteo выложить пример, который завелся на 5800
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Например, так.
Код:
Program JSR256test; |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Пример даже не скомпилился. Переделал так:
Код:
Program JSR256test; |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Попробуй перед запуском Init и остальным выяснить версию jsr256.
Если там возвращается null, то нечего и соваться делать всё остальное. |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Возможно ли узнать соостояние заряда батареи на обычном телефоне? Например: 6233i
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Цитата:
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Пробовал получить список на нок6233i и симС65.. Виснет прога в начале... (и get_version не помогает)
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Цитата:
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Цитата:
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Следовательно нет. Да и вообще предложение отписываться о моделях телефонов, на которых либа смогла получить информацию о сенсорах.
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
program g;
uses jsr256; var a:string; begin a:=get_version; drawtext(a,1,1); repaint; delay(3000) end . - не запускается. Cannot create class in system package. Остальные ф-ции - аналогично. |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Мда. Как показывает практика, лучше не вызывать даже get_version, иначе такая проверка может быть фатальной для телефонов, с отсутсвием сенсоров.
Лучше проверять вручную с помощью вызова PHP код:
стоит ли дальше делать инициализацию библиотеки или совсем не стоит. |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Цитата:
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
не запускается на 4х эмуляторах и 2х телефонах
ps подозреваю, что в либе нечто подобное и написано: __цитата________________________________ sensor_version := GetProperty('"microedition.sensor.version'); ________________________________________ Так почему же мидлет падает? да... Кто-нибудь знает "super bt. hack"? с его помощью виден, например, уровень сигнала сотовой связи, хотя такой ф-ции у меня в jave нет. И оставшийся заряд тоже показывает... |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
пробуй для начала вызвать get_property без подключения библиотеки.
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Подскажите как работать с сенсорным экраном...
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Цитата:
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Мидлет падает при вызове любой функции библиотеки потому, что сама библиотека наследует специальный класс DataListener для прослушивания потока данных от сенсоров. Соответственно если нет сенсоров, то нет и этого класса, а значит и наследовать нечего. Поэтому мидлет и впадает в полный ступор. Поэтому лучше проверить вручную с помощью GetProperty версию JSR256 и потом уже вызывать библиотеку, а лучше даже и не помещать данную библиотеку в мидлет предназначенный для обычных (без поддержки сенсоров) телефонов. Пока тестировать можно только на эмуляторах из пакета WTK 3.0 или на реальных телефонах, список которых я недавно выкладывал.
Nokia: 5500, N82, N85, N93i, N95, N95 8GB, N96 Sony ericsson: K850, C510, C901, C902, C903, C905, W395, W595, W705, W760, W902, W910, W980, W995, G705, F305 А также: iPhone 3G, Sagem myMovieBox, Samsung i8510 Innov8 |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
У меня чтот второй пример очень медленно работает хотя сенсоры на максимум работают или это так и должно быть?????????????7
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
А китаися i68+ поддерживает считывание показаний акселерометра из java?
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
еще Френсис Бэкон указывал на звачимость опыта в постижении истины...
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Подождите... Что-то меня глючит...
Как у телефона может не быть сенсоров?? Ладно - акселерометр, его, слава Богу, ещё не во все аппараты пихают, но аккумулятор - то, надеюсь, всегда есть? |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Цитата:
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
sensor_version := GetProperty('microedition.sensor.version'); вгоняет мидлет в глубокую белую задумчивость... С чего бы это?
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
может китайцы вообще на jsr-256 забили?
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
На i68 я забил. Его обращение к этой апи вообще вырубило :sarcastic_hand:
Тестил на эмуляторах и se k510i. |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Так.
Имеется: Телефон с GPS - 1 шт Яндекс Карты, в которых он работает - 2 шт Мидлет, пытающийся прослушивать сенсоры и перманентно падающий ~ 6 шт Лог эмулятора с ошибкой, совпадающей с выдаваемой реальным аппаратом - 1 шт: KEmulator Lite v0.9.7 Running... Get classes from C:\111\rere\ball\bin\ball.jar Get class FW Get class Lib_jsr256 Get class M Custom.jar.getResourceStream: /icon.png (284) Launch MIDlet class: FW >>Exception in thread "Thread-6" >>java.lang.NoClassDefFoundError: javax/microedition/sensor/DataListener >> at java.lang.ClassLoader.defineClass1(Native Method) >> at java.lang.ClassLoader.defineClass(ClassLoader.java :752) >> at java.lang.ClassLoader.defineClass(ClassLoader.java :593) >> at emulator.custom.a.findClass(Unknown Source) >> at emulator.custom.a.loadClass(Unknown Source) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:3 32) >> at M.R(Unknown Source) >> at M.run(Unknown Source) >> at java.lang.Thread.run(Thread.java:717) >>Caused by: java.lang.ClassNotFoundException: javax.microedition.sensor.DataListener >> at java.lang.ClassLoader.findClass(ClassLoader.java:4 86) >> at emulator.custom.a.findClass(Unknown Source) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:3 92) >> at emulator.custom.a.loadClass(Unknown Source) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:3 32) >> ... 9 more Код самого простого из мидлетов: Program JSR256test; Uses jsr256; Var s: String; i: integer; Begin s:=get_list; ShowForm; i:=FormAddString(s); Delay(10000); ShowCanvas; End. В чём ошибка? Или я просто не с той стороны копаю? Пойду ковырять Карты... End. |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Декомпилировал Карты и понял, что пока я разберусь, как они работают, спутники GPS попадают. Поиск по строкам "GPS" и "sensor" ничего полезного не дал. Пойду гуглить.
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Всё, понял. Это другая JSR. 179. Так что меня здесь не было =Р
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
А над либой ктонибуть еще работает? на эмуле kwyshell - вылетает с ошибкой, на китайце F035 - виснет на старте при попытке определить версию. чегото другого чтоб проверить к сожалению под руками нету.
UPD проверил на нокии н70 - таже ботва, просто виснет при просто попытке получить список сенсоров. |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Цитата:
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Цитата:
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Появился телефон с работающими сенсорами. Шарик из второго примера грустно висит в левом верхнем углу. Акселерометр работает, пример 4 показывает значения. Пойду копать.
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
У меня тоже сенсоры на SE работают, шарик катается, а вот на Samsung видимо акселерометр не так реализован. Там шарик не двигается.
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Переделал под свой тел.
Шарик почему-то при небольшом наклоне пытается двигаться по горизонтали/вертикали. Режим плавающей запятой переключил. Что ему ещ~ надо?? se w715i Акселерометр возвращает значения от -1062 до 1062 (больших значений не замечал) с шагом 18. А какой тип он возвращает? Не целочисленный случайно? А то мало ли.. |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
Вложений: 1
Сегодня ВНЕЗАПНО даже для самого себя сел за комп и написал симулятор катающихся шариков. В архиве 2 версии: для телефонов с акселерометром и для обычных. Вс~ 240*320. Переделать уже не успеваю, объединить тоже. До вторника доступного ПК у меня не будет(
Да, чуть не забыл. Управление: * - добавить шарик, # - убрать последний созданный шарик, 0 - выход. Если нет акселя, то управление наклоном - 2,4,6,8 и джойстик. |
Ответ: Lib_jsr256 - Работа с сенсорами телефона
... Вопрос был исчерпан.
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
На моём Samsung S5230 acceleration не работает(((((( возвращют все 3 значения "0"
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
А не.... работает... просто не acceleration,а rotation(device) нужно вводить :-D
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
знает ли кто нибудь как можно отключить поворот экрана в приложении(nokia5230 при повороте переворачивает мидлет)
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
В nokia5230 нужно отключать полностью поворот. Особых настроек поворота для приложений в нем нет.
|
Ответ: Lib_jsr256 - Работа с сенсорами телефона
да это я знал) решил проблемму сделав полнустью приложение в горизонтальном режиме)
|
Часовой пояс GMT +4, время: 08:34. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot