Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 5.00
AlexCB400
7 / 7 / 1
Регистрация: 25.06.2014
Сообщений: 34
#1

Управление вибро мотором - Программирование Android

23.10.2014, 12:59. Просмотров 2300. Ответов 8
Метки нет (Все метки)

Товарищи, добрый день! Решился впервые взяться за мобильные платформы. Вот для себя придумал ознакомительную программку. Идея вот в чем, обычный ПК под Windows конектится к смартфону посредством блюпуп. На компе запускаю приложение, на котором просто кнопка, при нажатии которой телефон завибрирует на пол секунды.

Прошу знающих людей в крадце объяснить возможность данной затеи и в положительном случае написать какими средствами это реализовать. Заранее большое спасибо всем откликнувшимся.

P.S. Сейчас занят написанием приложения типа Hello, world!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2014, 12:59     Управление вибро мотором
Посмотрите здесь:

Управление машинкой по Wi-Fi - Программирование Android
Добрый день уважаемые форумчане. Делаю дипломную работу и мне нужно написать программу для машинки, что бы она управлялась по Wi-Fi. (Вот...

Управление ActionBar - Программирование Android
Как добавлять TextView в ActionBar? Нужно что бы по нажатию кнопки в этом TextViev изменялся текст.

Управление приложением - Программирование Android
Доброго дня коллеги. Вопрос у меня назрел весьма интересный. Может кто задумывался об этом, а может кто-то знает уже где искать подобное...

Управление через ИК порт - Программирование Android
Уважаемые, интересуюсь таким вопросом. На современных девайсах имеется инфракрасный порт, вопрос такой, можно ли как-то подавать сигналы...

Управление пк через андроид - Программирование Android
Привет. Хотелось бы спросить реально ли написать программу для управления компьютером через интернет/wifi через телефон с ос андроид?...

Управление телефоном голосом - Программирование Android
Думаю сделать управление как голосовой набор, записываеться метка, и с ней потом сравнивается команда, вот только не знаю как так сделать....

Управление фрагментом из активити - Программирование Android
Добрый день! Имею несколько фрагментов, в которых выполняются некоторые действия, то итогу которых формируется результат. Фрагменты...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
23.10.2014, 18:49     Управление вибро мотором #2
фе... виндовз на блюпуп... месье знает толк в извращениях!
С блюпупом сами разбирайтесь(особенно с виндовым "отправителем сигнала", а с вибро просто:
Java
1
2
3
Vibrator mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
mVibrator.vibrate(200);
mVibrator.vibrate(100);
AlexCB400
7 / 7 / 1
Регистрация: 25.06.2014
Сообщений: 34
24.10.2014, 19:30  [ТС]     Управление вибро мотором #3
Шпасибо и на том, буду разбираться..

Добавлено через 3 часа 26 минут
Помоги еще чуток, создал проект, кинул на активити батон, описал онклик, сунул туда для проверки, чтоб появился текст с надписью и твои строчки кода. пробую на эмуляторе - вылетает. в какую сторону копать подскажи. может эмулятор не так настроил...
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
24.10.2014, 20:02     Управление вибро мотором #4
1) я с эмулятором редко работаю. Советую купить устройство. Я своего китайца взял 2 года назад за 140$.

2) есть еще понятие "доступ". проставляется в манифесте. Вибро не будет работать без:
<uses-permission android:name="android.permission.VIBRATE"/>

3) любое "велетание" сопровождается ошибкой. Обычно это 10-50 строк со всеми отсылками к ошибке. Среди них должна быть причина ошибки и позиция в коде, которая ее вызвала.
AlexCB400
7 / 7 / 1
Регистрация: 25.06.2014
Сообщений: 34
17.11.2014, 17:17  [ТС]     Управление вибро мотором #5
Вот оно! свершилось, я дописал задуманное. С компа отправляю сообщение в виде миллисекунд, андроид устройство приняв его жужжит заданное время.

статьи которые мне помогли написать задуманное:
http://developer.alexanderklimov.ru/.../bluetooth.php
на этом сайте много чего есть. всем начинающим, как я - рекомендую.

Виндовскую часть писал на С# в это мне пог:
http://www.youtube.com/watch?v=Jn05CU3mxzo

Если у кого возникнут вопросы - пишите, кому надо выложу код...

тему считаю закрытой.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
17.11.2014, 19:44     Управление вибро мотором #6
AlexCB400, а можно исходники? Хотя бы части с блютузом на андроид. Не связывался с ним еще, охота посмотреть как оно вообще работает)
AlexCB400
7 / 7 / 1
Регистрация: 25.06.2014
Сообщений: 34
19.11.2014, 15:03  [ТС]     Управление вибро мотором #7
Spelcrawler, я не забыл, помню, времени на работе не было... завтра постараюсь выложить

Добавлено через 16 часов 11 минут
В манифест указываем
Java
1
2
<uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.VIBRATE"/>
В методе onCreate проверяем блюпуп на наличие CheckBlueToothState();
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private void CheckBlueToothState() {
        if(bluetoothAdapter == null) {
            labelStateBluetooth.setText("Bluetooth на вашем устройстве не поддерживается");
        } else {
            if(bluetoothAdapter.isEnabled()) {
                if(bluetoothAdapter.isDiscovering()) {
                    labelStateBluetooth.setText("Bluetooth в процессе поиска.");
                } else {
 
                    String address = bluetoothAdapter.getAddress();
                    String name = bluetoothAdapter.getName();
 
                    labelStateBluetooth.setText("Bluetooth доступен." + name + " : " + address);
                }
            } else {
                labelStateBluetooth.setText("Bluetooth не доступен!");
                StartBlueTooth();
            }
        }
    }
Если имеется и выключен - включаем StartBlueTooth();
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
private void StartBlueTooth() {
 
        BroadcastReceiver bluetoothState = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String prevStateExtra = BluetoothAdapter.EXTRA_PREVIOUS_STATE;
                String stateExtra = BluetoothAdapter.EXTRA_STATE;
                int state = intent.getIntExtra(stateExtra, -1);
                int previousState = intent.getIntExtra(prevStateExtra, -1);
                toastText = "";
 
                switch (state) {
                    case (BluetoothAdapter.STATE_TURNING_ON) : {
                        toastText = "Bluetooth turning on";
                        break;
                    }
                    case (BluetoothAdapter.STATE_ON) : {
                        toastText = "Bluetooth on";
                        unregisterReceiver(this);
                        break;
                    }
                    case (BluetoothAdapter.STATE_TURNING_OFF) : {
                        toastText = "Bluetooth turning off"; break;
                    }
                    case (BluetoothAdapter.STATE_OFF) : {
                        toastText = "Bluetooth off"; break;
                    }
                    default: break;
                }
 
                Toast.makeText(context, toastText, Toast.LENGTH_LONG).show();
            }
        };
 
        if (!bluetoothAdapter.isEnabled()) {
            String actionStateChanged = BluetoothAdapter.ACTION_STATE_CHANGED;
            String actionRequestEnable = BluetoothAdapter.ACTION_REQUEST_ENABLE;
            registerReceiver(bluetoothState,
                    new IntentFilter(actionStateChanged));
            startActivityForResult(new Intent(actionRequestEnable), 0);
        }
    }
Добавлено через 1 минуту
По кнопке с формы запускаем блюпуп сервер и ждем подключений
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public void Go(View view) throws IOException {
 
        Toast.makeText(this, "Go!", Toast.LENGTH_LONG).show();
 
        UUID uuid = UUID.fromString("8e780202-0000-1000-8000-00805f9b34fb");
        String name = "bluetoothserver";
 
        final BluetoothServerSocket btserver = bluetoothAdapter.listenUsingRfcommWithServiceRecord(name, uuid);
 
        Thread acceptThread = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    // Блокируется, пока соединение не будет установлено.
                    BluetoothSocket serverSocket = btserver.accept();
                    Vibrato(900);
                    int bufferSize = 1024;
                    byte[] buffer = new byte[bufferSize];
                    try {
                        InputStream instream = serverSocket.getInputStream();
                        int bytesRead = -1;
                        while (true) {
                            String result = "";
                            bytesRead = instream.read(buffer);
                            if (bytesRead != -1) {
                                while ((bytesRead == bufferSize) && (buffer[bufferSize-1] != 0)){
                                    result = result + new String(buffer, 0, bytesRead);
                                    bytesRead = instream.read(buffer);
                                }
                                result = result + new String(buffer, 0, bytesRead - 1);
                                try{
                                    int i = Integer.parseInt(result);
                                    Vibrato(i);
                                }
                                catch (Exception e) {}
                            }
                        }
                    } catch (IOException e) {}
 
                } catch (IOException e) {
                    Log.d("BLUETOOTH", e.getMessage());
                }
            }
        });
 
        acceptThread.start();
    }
Добавлено через 3 минуты
Клиентская часть написана на C#. там реализован поиск устройств в сети и подключение, а также посыл сообщений, посылаю целые числа, которые отправляю в метод Vibrato и телефон/планшет жужжит.
в скоре буду пробовать наоборот сделать клиента на андройде. Кстати после подключения понятие сервер клиент стираются и сообщения можно слать в оба конца используя сокеты.

Добавлено через 5 часов 19 минут
Tester64, подскажи пожалуйста, мы можем при вибрации управлять мощностью? как в джойстиках у консолек, задействовать 1 или 2 моторчика? прости за глупый вопрос, если он покажется таким))

и смог бы ты мне объяснить что за атрибут который мы можем добавлять в метод vibrate(200);
public void vibrate (long milliseconds, AudioAttributes attributes)
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
19.11.2014, 15:51     Управление вибро мотором #8
Цитата Сообщение от AlexCB400 Посмотреть сообщение
можем при вибрации управлять мощностью? как в джойстиках у консолек, задействовать 1 или 2 моторчика?
В телефоне же один моторчик) Мощностью управлять нельзя, только длительностью. Примерно до 100-150 мс увеличение\уменьшение длительности будет выглядеть как увеличение\уменьшение мощности.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2014, 16:08     Управление вибро мотором
Еще ссылки по теме:

list view управление - Программирование Android
у меня есть лист вью на шаблоне одна надпись и три кнопки, вот вопрос как управлять то этими кнопка как обрабатывать (ЗЫ знаю как...

Управление ориентацией экрана - Программирование Android
вот есть у меня приложение, меня у страивает как оно на всех телефонах отображется(vertical), надо чтоб оно в планшетах(landscape)...

Управление громкостью из сервиса - Программирование Android
в сервисе воспроизводится звук с некоторыми промежутками, получается клавиши громкости управляют громкостью звука только при...

Управление звуком с ПК по WiFi - Программирование Android
Доброго времени суток. Вопрос встал такой: как управлять портом для наушников (звуком) нескольких телефонов (или просто разных...

Управление элементами меню - Программирование Android
Пытаюсь разобраться с явой и поэтому немного сложно сориентироваться: Подскажите пожалуйста - управлять визуальными элементами приложения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
19.11.2014, 16:08     Управление вибро мотором #9
AlexCB400, судя по документации

AudioAttributes corresponding to the vibration. For example, specify USAGE_ALARM for alarm vibrations or USAGE_NOTIFICATION_RINGTONE for vibrations associated with incoming calls.
Что то типа установка вибрации соответствующей Будильнику или Уведомлению.
Yandex
Объявления
19.11.2014, 16:08     Управление вибро мотором
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru