forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_scodes - определение кодов софт-клавиш и модели телефона (http://forum.boolean.name/showthread.php?t=9005)

Tronix 26.08.2009 16:56

Lib_scodes - определение кодов софт-клавиш и модели телефона
 
Вложений: 1
Lib_scodes - служит для определения кодов клавиш на различных телефонах. Также позволяет определить модель телефона.

Функции:
public static String get_platform() - инициализирует библиотеку и возвращает краткое название модели телефона. При использовании библиотеки вызывать эту функцию первой обязательно (!!!)Возможные вариаты возвращенных значений:
'motorola', 'nokia', 'SE', 'siemens', 'samsung', 'LG', 'NA', где 'NA' - модель не определена.

public static int get_leftsoftkeycode() - возвращает код левой софт-клавиши для текущей модели телефона. Внимание: перед использованием вызвать обязательно функцию get_platform (!!!)

public static int get_rightsoftkeycode() - возвращает код правой софт-клавиши. Внимание: перед использованием вызвать обязательно функцию get_platform (!!!)

Пример:
PHP код:

Uses scodes;
Begin
     DrawText
('Model: '+get_platform,0,0); // Показали модель и инициализировали библиотеку
     
DrawText('Left key code: '+get_leftsoftkeycode,0,20);
     
DrawText('Right key code: '+get_rightsoftkeycode,0,40);
     
Repaint;
     
Delay(10000);
End

Библиотека в стадии тестирования. Нужны тестеры для проверки на реальных аппаратах. Буду рад услышать результаты тестирования здесь.

Tronix 26.08.2009 23:29

Ответ: Lib_scodes - определение кодов софт-клавиш и модели телефона
 
Небольшое замечание: поскольку в процессе выполняеться достаточно много проверок, лучше инициализировать и определить все коды в самом начале программы, как показано ниже. Все функции у библиотеки достаточно медленны.

PHP код:

Var
    
S    String;   // Будет содержать название платформы
    
skl  Integer;  // Код лефой софт-клавиши
    
skr  Integer// Код правой софт-клавиши
    
key Integer;  // Код нажатой клавиши

Begin
    
[...читаем рессурсыRandomizeи подобное...]
    
:= get_platform;   // Инициализировали библиотеку
    
skl := get_leftsoftkeycode// Получили код лефой клавиши
    
skr := get_rightsoftkeycode// Получили код правой клавиши
     
    
Repeat   // Основной цикл программы
    
key := GetKeyClicked;
    [...
делаем что-либо...]
    
Until key skr;    // Выходим, если нажата правая софт клавиша
End


odd 28.08.2009 08:11

Ответ: Lib_scodes - определение кодов софт-клавиш и модели телефона
 
Библиотека нужная, молодец. Но вот размер данной библиотеки немного пугает.
Для трех простеньких функций 6 килобайт это многовато.
Попробуй модернизировать библиотеку с учетом использования массивов.
Что-то типа такого:

PHP код:

private static String [] platforms =
{
        
"Samsung""Motorola"
};
private static 
String [] classes =
{
        
"com.samsung.util.Vibration""com.motorola.multimedia.Vibrator"
};
private static 
int [] left = { -6, -21 };
private static 
int [] right = { -7, -22 };
private static 
int platform;

public static 
String get_platform()
{
    return 
detect_platform();
}

private static 
String detect_platform()
{
    
platform 0;
    for (
int i=0classes.lengthi++)
    {
        try
        {
            Class.
forName(classes[i]);
            
platform++; return platforms[i];
        }
        catch(
Exception e) {}
    }
    return 
"Unknown";
}

public static 
int get_leftsoftkeycode()
{
    return 
left[platform];
}

public static 
int get_rightsoftkeycode()
{
    return 
right[platform];


Так код будет более читабельный и меньше занимать.

Tronix 31.08.2009 11:28

Ответ: Lib_scodes - определение кодов софт-клавиш и модели телефона
 
2odd: спасибо за совет и пример. Это мой первый опыт создания либы да и вообще, первое знакомство с явой можно сказать. Размер обязательно уменьшим, как только будет чуть по лучше со временем.

2all: Кто-нибуть библиотеку то тестировал вообще? Она хоть работает? ;)

Dj_Alex 16.09.2009 21:43

Ответ: Lib_scodes - определение кодов софт-клавиш и модели телефона
 
на эмуляторах sjboy и wtk платформа определяется как motorola левый софткей -6 а правый почему то 0. на кемуляторе определяется как se и коды возврвщает нормальные.
поправьте плз.

Tronix 18.09.2009 09:29

Ответ: Lib_scodes - определение кодов софт-клавиш и модели телефона
 
Вложений: 1
Цитата:

Сообщение от Dj_Alex (Сообщение 118777)
на эмуляторах sjboy и wtk платформа определяется как motorola левый софткей -6 а правый почему то 0. на кемуляторе определяется как se и коды возврвщает нормальные.
поправьте плз.

Поправил, теперь правый софткей будет определяться нормально.
То, что на эмуляторах возвращает не правильные платформы, это нормально. Главное, что на реальных телефонах возвращает. А так, да:
sjboy, wtk : платформа motorola
kemulator : смотря какая эмуляция телефона стоит в настройках. По дефолту - SE
Kwyshell (NHAL) : NA

PS: Совсем скоро уменьшу более чем в два раза размер библиотеки, пока так как есть.
PSS: Почему-то не могу отредактировать первый свой пост в теме, поэтому прикладываю новую версию в этом посте.

Trazzy 14.10.2009 03:15

Ответ: Lib_scodes - определение кодов софт-клавиш и модели телефона
 
А можно както работать с клавишами вызова и сброса?
Добавить бы их в эту либу и будит полная жесть!!!

Piligrim 14.10.2009 12:14

Ответ: Lib_scodes - определение кодов софт-клавиш и модели телефона
 
Клавиша вызова чаще всего имеет имя "SEND"

Tronix 14.10.2009 14:16

Ответ: Lib_scodes - определение кодов софт-клавиш и модели телефона
 
Вложений: 1
Ребят, прошу прощения, но нет желания и времени. Если нужно, исходники в аттаче.

Trazzy 03.01.2010 06:46

Ответ: Lib_scodes - определение кодов софт-клавиш и модели телефона
 
Цитата:

Сообщение от Piligrim (Сообщение 121555)
Клавиша вызова чаще всего имеет имя "SEND"

Ну, это понятно. А где и как это имя "SEND" можно использовать?!
И какое имя у клавиши сброса?
Прост мне надо сделать программу, в которой по нажатию на клавишу вызова происходил звонок, ну и сброс (думаю ясно для чего)..

Кто может чем помочь? или посоветовать?

GRAY_WOLF 04.01.2010 19:54

Ответ: Lib_scodes - определение кодов софт-клавиш и модели телефона
 
Цитата:

Сообщение от ArtikZ (Сообщение 132044)
Прост мне надо сделать программу, в которой по нажатию на клавишу вызова происходил звонок, ну и сброс (думаю ясно для чего)..

Кто может чем помочь? или посоветовать?

Если тебе надо сделать телефонный справочник прочитай тут

Trazzy 05.01.2010 10:12

Ответ: Lib_scodes - определение кодов софт-клавиш и модели телефона
 
GRAY_WOLF, как раз с менюшкой и звонками у меня проблем нет..
а вот как можно работать с клавишами вызова и сброса, мне интересно просто..
В поисковниках ничего толкового не выдает по этому вопросу((

cherepets 05.01.2010 11:48

Ответ: Lib_scodes - определение кодов софт-клавиш и модели телефона
 
я всегда коды узнаю достаточно просто:

repeat key:=getkeypressed until key<>KE_NONE;
drawtext(integertostring(key),0,0);

конечно подходить будет код не для всех телефонов, но это можно забить, т.к. почти на всех телефонах красная завершает приложение, а значит твое приложение туда не пойдет...
вообще я бы посоветовал использовать в твоей проге вместо кнопок звонка/сброса софткеи.

Trazzy 06.01.2010 13:20

Ответ: Lib_scodes - определение кодов софт-клавиш и модели телефона
 
Подобное видел в приложениях типо Jimm'а, где по нажатию на зеленую клавишу происходит переход в историю сообщений и др.

GRAY_WOLF 06.01.2010 23:01

Ответ: Lib_scodes - определение кодов софт-клавиш и модели телефона
 
Цитата:

Сообщение от ArtikZ (Сообщение 132256)
а вот как можно работать с клавишами вызова и сброса, мне интересно просто..
В поисковниках ничего толкового не выдает по этому вопросу((

Вот тут есть help по МР, там в переводе help'a от odd есть Таблица скан-кодов клавиш телефонов Siemens, Sony Ericsson, Nokia, Motorola. Изучай.


Часовой пояс GMT +4, время: 14:54.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot