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

Bluetooth. Повторный запрос Pin-кода на спаривание (при коннекте) - Android

Восстановить пароль Регистрация
 
Roman_NikName
0 / 0 / 0
Регистрация: 31.07.2015
Сообщений: 3
29.10.2016, 22:08     Bluetooth. Повторный запрос Pin-кода на спаривание (при коннекте) #1
Добрый день! Я совсем новичок. Приложение писал на Unity, а саму библиотеку с доступом к API Android писал в Eclipce.
Создал небольшое приложение для приема-передачи текста по bluetooth. С интересующим меня устройством сопрягаю свой телефон (Sony Xperia P), для сопряжения требуется стандартный пароль "1234". После пытаюсь коннектиться, в этот момент вылазит снова запрос на введение этого пароля. Причем иногда запрос вылезает над текущей активити, а иногда не вылезает - приходиться сворачивать приложение. В настройках телефона не нашёл способа убрать этот повторный запрос. Можно ли это сделать программно? или как можно было бы программно вписать пароль и подтвердить в возникающем запросе?

На телефоне жены (Samsung GT-I9195) всё работает как надо, при коннекте не выводится повторный запрос пароля.
Может есть ещё какие-нибудь варианты решения задачи.

Добавлено через 2 часа 9 минут
Так же добавлю. Складывается впечатление, что при попытке приконнектиться, теряется сопряжение, поскольку даже если я введу в всплывшее окошко верный пароль "1234", устройства становятся несопряженными. И сопряжение не возвращается, пока я не перезагружу блютуз.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2016, 22:08     Bluetooth. Повторный запрос Pin-кода на спаривание (при коннекте)
Посмотрите здесь:

Проблемы при перенесении кода с Delphi на Android Android
Bluetooth Broadastreceiver Android
Android POST запрос при открытом WebSocket'e
Bluetooth-чат Android
Android Bluetooth- приложение
Android Приложение заверашется при выполнении кода
Работа с bluetooth Android
При передаче текста в другую программу нужен только Bluetooth Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 684
30.10.2016, 00:54     Bluetooth. Повторный запрос Pin-кода на спаривание (при коннекте) #2
Возможно вы не правильно подключаетесь?
Roman_NikName
0 / 0 / 0
Регистрация: 31.07.2015
Сообщений: 3
30.10.2016, 09:04  [ТС]     Bluetooth. Повторный запрос Pin-кода на спаривание (при коннекте) #3
Вот пример части кода для клиентского класса:
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
    public BTClientThread(BluetoothAdapter BLAD_, String address){
        BluetoothSocket tmp = null;
        BluetoothDevice device=null;
        Log = "Передача адреса :" + address;
        device = BLAD_.getRemoteDevice(address);
        if (device!=null){
            Log1 = "Девайс установлен";
        }
        try{
           tmp = device.createRfcommSocketToServiceRecord(UUID.fromString(UUID_));
            Log2 = "Создан cокет по UUID :" + UUID_;
        } 
        catch(IOException e){}
        if ( tmp!= null){
            Log3 = "Сокет не пустой";
        }
        Csocket = tmp;
    }
    
    public void run(){
         
        try{
           // Соединяемся с устройством через сокет.
           // Метод блокирует выполнение программы до
           // установки соединения или возникновения ошибки
           Csocket.connect();
           Log4 = "Соединение установлено";        
        } 
        catch(IOException connectException){
              // Невозможно соединиться. Закрываем сокет и выходим.
            Log5 = "Невозможно соединиться";
           try{
               Log6 = "Попытка выйти";
               Csocket.close();
               Log7 = "Вышли";
           } 
           catch(IOException closeException){}
           return;  
        }
        manageConnectedSocket(Csocket);
//         try{
//                Csocket.close();
//            } 
//         catch(IOException e){}
    }
  
    public void manageConnectedSocket(BluetoothSocket socket1) {
        BluetoothSocket btSocket = socket1;
        InputStream tmpIn = null;
        OutputStream tmpOut = null;
        // Get the input and output streams, using temp objects because
        // member streams are final
        Log8 = "Создаём потоки";
//        Log8 = Boolean.toString(btSocket.isConnected());
        try {
            tmpIn = btSocket.getInputStream();
            tmpOut = btSocket.getOutputStream();
            Log9 = "Потоки созданы";
        } catch (IOException e) { }
  
        btInStream = tmpIn;
        btOutStream = tmpOut;
    }
И ещё раз замечу, другой телефон спокойно и все четко выполняет.
UUID использую 00001101-0000-1000-8000-00805F9B34FB
Так же создавал клиентский сокет методом:
Java
1
2
               tmp = (BluetoothSocket) device.getClass().getMethod("createRfcommSocket",
                    new Class[] {int.class}).invoke(device,1);
Аналогично, при попытке коннекта - снова запрос на сопряжение (ввод ПИН-кода).
Roman_NikName
0 / 0 / 0
Регистрация: 31.07.2015
Сообщений: 3
06.11.2016, 22:13  [ТС]     Bluetooth. Повторный запрос Pin-кода на спаривание (при коннекте) #4
Проблему решил, изменив:
Java
1
tmp = BLAD_.listenUsingRfcommWithServiceRecord(Name, UUID.fromString(UUID_));
на
Java
1
tmp = BLAD_.listenUsingInsecureRfcommWithServiceRecord(Name, UUID.fromString(UUID_));
Но до сих пор не понимаю, почему на одном из телефонов работал и первый вариант.
Yandex
Объявления
06.11.2016, 22:13     Bluetooth. Повторный запрос Pin-кода на спаривание (при коннекте)
Ответ Создать тему
Опции темы

Текущее время: 23:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru