powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Serial Port
25 сообщений из 96, страница 2 из 4
Serial Port
    #38656231
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,
Скрин

SerialPort.c
Код: plaintext
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.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
/*
 * Copyright 2009-2011 Cedric Priscal
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include <termios.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <jni.h>

#include "SerialPort.h"

static speed_t getBaudrate(jint baudrate)
{
	switch(baudrate) {
	case 0: return B0;
	case 50: return B50;
	case 75: return B75;
	case 110: return B110;
	case 134: return B134;
	case 150: return B150;
	case 200: return B200;
	case 300: return B300;
	case 600: return B600;
	case 1200: return B1200;
	case 1800: return B1800;
	case 2400: return B2400;
	case 4800: return B4800;
	case 9600: return B9600;
	case 19200: return B19200;
	case 38400: return B38400;
	case 57600: return B57600;
	case 115200: return B115200;
	case 230400: return B230400;
	case 460800: return B460800;
	case 500000: return B500000;
	case 576000: return B576000;
	case 921600: return B921600;
	case 1000000: return B1000000;
	case 1152000: return B1152000;
	case 1500000: return B1500000;
	case 2000000: return B2000000;
	case 2500000: return B2500000;
	case 3000000: return B3000000;
	case 3500000: return B3500000;
	case 4000000: return B4000000;
	default: return -1;
	}
}

/*
 * Class:     android_serialport_SerialPort
 * Method:    open
 * Signature: (Ljava/lang/String;II)Ljava/io/FileDescriptor;
 */
JNIEXPORT jobject JNICALL Java_ua_radian_radian_sp_SerialPort_open
  (JNIEnv *env, jclass thiz, jstring path, jint baudrate, jint flags)
{
	int fd;
	speed_t speed;
	jobject mFileDescriptor;

	/* Check arguments */
	{
		speed = getBaudrate(baudrate);
		if (speed == -1) {
			/* TODO: throw an exception */
			LOGE("Invalid baudrate");
			return NULL;
		}
	}

	/* Opening device */
	{
		jboolean iscopy;
		const char *path_utf = *env->GetStringUTFChars(env, path, &iscopy);
		LOGD("Opening serial port %s with flags 0x%x", path_utf, O_RDWR | flags);
		fd = open(path_utf, O_RDWR | flags);
		LOGD("open() fd = %d", fd);
		(*env)->ReleaseStringUTFChars(env, path, path_utf);
		if (fd == -1)
		{
			/* Throw an exception */
			LOGE("Cannot open port");
			/* TODO: throw an exception */
			return NULL;
		}
	}

	/* Configure device */
	{
		struct termios cfg;
		LOGD("Configuring serial port");
		if (tcgetattr(fd, &cfg) != 0)
		{
			LOGE("tcgetattr() failed");
			close(fd);
			/* TODO: throw an exception */
			return NULL;
		}

	   //	cfmakeraw(&cfg);
		/* Set Baud Rate */
		cfsetispeed(&cfg, speed);
		cfsetospeed(&cfg, speed);

		/* Setting other Port Stuff */
		cfg.c_cflag     &=  ~PARENB;        // Make 8n1
		cfg.c_cflag     &=  ~CSTOPB;
		cfg.c_cflag     &=  ~CSIZE;
		cfg.c_cflag     |=  CS8;

		cfg.c_cflag     &=  ~CRTSCTS;       // no flow control
		cfg.c_cc[VMIN]      =   1;                  // read doesn't block
		cfg.c_cc[VTIME]     =   5;                  // 0.5 seconds read timeout
		cfg.c_cflag     |=  CREAD | CLOCAL;     // turn on READ & ignore ctrl lines

        cfmakeraw(&cfg);


		if (tcsetattr(fd, TCSANOW, &cfg) != 0)
		{
			LOGE("tcsetattr() failed");
			close(fd);
			/* TODO: throw an exception */
			return NULL;
		}
	}

	/* Create a corresponding file descriptor */
	{
		jclass cFileDescriptor = (*env)->FindClass(env, "java/io/FileDescriptor");
		jmethodID iFileDescriptor = (*env)->GetMethodID(env, cFileDescriptor, "<init>", "()V");
		jfieldID descriptorID = (*env)->GetFieldID(env, cFileDescriptor, "descriptor", "I");
		mFileDescriptor = (*env)->NewObject(env, cFileDescriptor, iFileDescriptor);
		(*env)->SetIntField(env, mFileDescriptor, descriptorID, (jint)fd);
	}

	return mFileDescriptor;
}

/*
 * Class:     cedric_serial_SerialPort
 * Method:    close
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_ua_radian_radian_sp_SerialPort_close
  (JNIEnv *env, jobject thiz)
{
	jclass SerialPortClass = (*env)->GetObjectClass(env, thiz);
	jclass FileDescriptorClass = (*env)->FindClass(env, "java/io/FileDescriptor");

	jfieldID mFdID = (*env)->GetFieldID(env, SerialPortClass, "mFd", "Ljava/io/FileDescriptor;");
	jfieldID descriptorID = (*env)->GetFieldID(env, FileDescriptorClass, "descriptor", "I");

	jobject mFd = (*env)->GetObjectField(env, thiz, mFdID);
	jint descriptor = (*env)->GetIntField(env, mFd, descriptorID);

	LOGD("close(fd = %d)", descriptor);
	close(descriptor);
}


SerialPort.h
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class android_serialport_api_SerialPort */

#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     android_serialport_api_SerialPort
 * Method:    open
 * Signature: (Ljava/lang/String;II)Ljava/io/FileDescriptor;
 */
JNIEXPORT jobject JNICALL Java_ua_radian_radian_sp_SerialPort_open
  (JNIEnv *, jclass, jstring, jint, jint);


JNIEXPORT void JNICALL Java_ua_radian_radian_sp_SerialPort_close
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

...
Рейтинг: 0 / 0
Serial Port
    #38656250
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er,

я уже с телефона, завтра посмотрю и выложу свою библиотеку, попробуешь.
Завтра же у супруги заберу планшет для тестирования )
...
Рейтинг: 0 / 0
Serial Port
    #38656661
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Планшет отвоевать не удалось...

Изменения в сравнении с оригиналом:
Код: 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.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
/*
 * Copyright 2009 Cedric Priscal
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License. 
 */

package ru.wadman.serialport;

import java.io.File;
import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.util.Log;

public class SerialPort {

		public final static int SERIALPORT_NOPARITY		= 0;
		public final static int SERIALPORT_ODDPARITY	= 1;
		public final static int SERIALPORT_EVENPARITY	= 2;
		public final static int SERIALPORT_SIZE5		= 5;
		public final static int SERIALPORT_SIZE6		= 6;
		public final static int SERIALPORT_SIZE7		= 7;
		public final static int SERIALPORT_SIZE8		= 8;
		public final static int SERIALPORT_1STOPBIT		= 1;
		public final static int SERIALPORT_2STOPBIT		= 2;

		private static final String TAG = "SerialPort";
        
        /*
         * Do not remove or rename the field mFd: it is used by native method close();
         */
        private FileDescriptor mFd;
        private FileInputStream mFileInputStream;
        private FileOutputStream mFileOutputStream;

        public SerialPort(File device, int flags) throws SecurityException, IOException {

                /* Check access permission */
                if (!device.canRead() || !device.canWrite()) {
                        try {
                                /* Missing read/write permission, trying to chmod the file */
                                Process su;
                                su = Runtime.getRuntime().exec("su");
                                String cmd = "chmod 666 " + device.getAbsolutePath() + "\n"
                                                + "exit\n";
                                su.getOutputStream().write(cmd.getBytes());
                                if ((su.waitFor() != 0) || !device.canRead()
                                                || !device.canWrite()) {
                                        throw new SecurityException();
                                }
                        } catch (Exception e) {
                                e.printStackTrace();
                                throw new SecurityException();
                        }
                }

                mFd = open(device.getAbsolutePath(), flags);
                if (mFd == null) {
                        Log.e(TAG, "native open returns null");
                        throw new IOException();
                }
                mFileInputStream = new FileInputStream(mFd);
                mFileOutputStream = new FileOutputStream(mFd);
        }

        // Getters and setters
        public InputStream getInputStream() {
                return mFileInputStream;
        }

        public OutputStream getOutputStream() {
                return mFileOutputStream;
        }

        // JNI
        private native static FileDescriptor open(String path, int flags);
        public native void config(int baudrate, int bsize, int parity, int stopb);
        public native void close();
        static {
                System.loadLibrary("serial_port");
        }
}

...
Рейтинг: 0 / 0
Serial Port
    #38656662
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er Скрин
У тебя явовский проект, а код сишный. Отсюда и ошибки.
...
Рейтинг: 0 / 0
Serial Port
    #38656722
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

мм.. это понял.. а каким тогда образом мне дописать и собрать свою библиотеку? (в другой среде?)

А разве переключение режима (верхний правый угол в Eclipse) не "исправляет" восприятие Сишного кода??
...
Рейтинг: 0 / 0
Serial Port
    #38656729
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Восприятие" может и меняет, но не компиляцию-же. Эклипс не знает об НДК.

Погугли на тему сборки в эклипсе.
...
Рейтинг: 0 / 0
Serial Port
    #38656734
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Хорошо, сейчас все гляну... через несколько часов постараюсь скинуть результаты
...
Рейтинг: 0 / 0
Serial Port
    #38656861
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman"Восприятие" может и меняет, но не компиляцию-же. Эклипс не знает об НДК.

Погугли на тему сборки в эклипсе.

Странно... добавил НДК, теперь библиотеки компилируются но ошибки все равно выдает...
...
Рейтинг: 0 / 0
Serial Port
    #38656905
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erwadman"Восприятие" может и меняет, но не компиляцию-же. Эклипс не знает об НДК.

Погугли на тему сборки в эклипсе.

Странно... добавил НДК, теперь библиотеки компилируются но ошибки все равно выдает...
Это мелочи... Главное - работает?
...
Рейтинг: 0 / 0
Serial Port
    #38657118
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Всё сработало. Правда передалось непонятно что :D ... ну это беда моей конфигурации портов. То ли на Win32 то ли на Android.

Я использовал все таки свою сборку из этих библиотек, пока что просто дописав конфигурацию при открытии порта
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
                cfmakeraw(&cfg);
		cfsetispeed(&cfg, speed);
		cfsetospeed(&cfg, speed);


		cfg.c_cflag     &=  ~PARENB;        // Make 8n1
		cfg.c_cflag     &=  ~CSTOPB;
		cfg.c_cflag     &=  ~CSIZE;
		cfg.c_cflag     |=  CS8;

		cfg.c_cflag     &=  ~CRTSCTS;       // no flow control
		cfg.c_cc[VMIN]      =   1;                  // read doesn't block
		cfg.c_cc[VTIME]     =   5;                  // 0.5 seconds read timeout
		cfg.c_cflag     |=  CREAD | CLOCAL;     // turn on READ & ignore ctrl lines



		if (tcsetattr(fd, TCSANOW, &cfg))


Ну и сам вызов
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
	
              OnClickListener oclvListDev = new OnClickListener() {
	       @Override
	       public void onClick(View v) {
	         // TODO Auto-generated method stub
	    	   						//путь к порту задаю через EditText
	    	   File fd = new File(etMyDev.getText().toString());
	    	   
	    	   try
	    	   {							//случайный набор байт
	    		   byte dataToWrite[] = {1,5,7,34,5,8,7,8,3,2};	
	    		   mySerialPort = new SerialPort(fd,115200,0);
	    		   mySerialPort.getOutputStream().write(dataToWrite);
	    	   }
	    	   catch(IOException ioe)
	    	   {
	    		  ioe.printStackTrace();  
	    	   }
	    	   mySerialPort.close();
	
	       }
	     };


Чтение из файла не пробовал пока что.. но думаю там ничего не изменится... Спасибо за помощь:-)
...
Рейтинг: 0 / 0
Serial Port
    #38657159
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanЭто мелочи... Главное - работает?

Кстати ошибку исправил заменив файл SerialPort.c(формат Си) -> SerialPort.cpp(формат С++) и
внес небольшие корректировки(изменил обращение ко всем указателям JNI) в код относительно "нового" языка:

было
Код: plaintext
1.
(*env)->GetStringUTFChars(env, path, &iscopy);


стало
Код: plaintext
1.
(env)->GetStringUTFChars(path, &iscopy);



П.С. такое "раскрытое" объяснение для читателей :-)
...
Рейтинг: 0 / 0
Serial Port
    #38657266
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erВсё сработало. Правда передалось непонятно что :D
С андроида что именно отправлялось? Что-то русское?
...
Рейтинг: 0 / 0
Serial Port
    #38657288
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

нет.. цифры... ... там ошибка была на приеме данных.. (стоял прием в виде Char[0..n] вместо byte[0..n]).. главное что данные передаются.. а расшифровать уже это дело такое...
...
Рейтинг: 0 / 0
Serial Port
    #38657295
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er, рут используется или без него нормально работает? Что за устройство (с андроидом)?
...
Рейтинг: 0 / 0
Serial Port
    #38657324
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

У меня "война" с рутом(не получается переключить режим запуска приложений на "из под рута"). На сколько я понял для переключения "прав доступа на порт" нужно что бы приложение запускалось под рутом. ... я вручную (через терминал) открыл доступ на порт для чтения записи (chmod 666 ttyXX) и спокойно работал. Без рута меня просто выбивало из приложения(из-за попытки переключить права доступа к порту). А если без "изменения прав"(за комментировать) то порт не открывается.

Android 4.2.2 на устройстве ( мозги которые в в нем стоят)
...
Рейтинг: 0 / 0
Serial Port
    #38657392
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er,

как вызывать su - смотри у меня в исходниках выше. Нужно путь убрать.
...
Рейтинг: 0 / 0
Serial Port
    #38658323
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Не помогло.. из приложения выкидывает, а консоль выдает:
"binder: 479:479 transaction failed 29189, size 92-0"
...
Рейтинг: 0 / 0
Serial Port
    #38658384
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er, su-то установлен?
...
Рейтинг: 0 / 0
Serial Port
    #38658401
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Да, только лежит он по адресу "/system/xbin/su"

мне хотя бы найти как изменить права доступа к файлу через консоль, что бы после перезагрузки системы изменения не "сбрасывались" было бы достаточно. ... в моем случае проблема заключается в том что приложение запущенно без прав root . (ИМХО)
...
Рейтинг: 0 / 0
Serial Port
    #38658452
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erДа, только лежит он по адресу "/system/xbin/su"
И у меня в планшете и эмуляторе лежит там-же. Я убрал путь из вызова
wadman
Код: java
1.
2.
Process su;
su = Runtime.getRuntime().exec("su");


И запрос на рут доступ всплывает. Так что где-то у тебя проблема, пробежись дебагом и посмотри точный текст ошибок со стеком.

Хочу еще отметить, что usb-serial-for-android тоже отлично работает с устройствами. При этом не требует рут прав, но требуется легкий допил по своим железкам, которые в нем не прописаны. Сейчас там есть это:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- 0x0403 / 0x6001: FTDI FT232R UART -->
    <usb-device vendor-id="1027" product-id="24577" />

    <!-- 0x0403 / 0x6015: FTDI FT231X -->
    <usb-device vendor-id="1027" product-id="24597" />

    <!-- 0x2341 / Arduino -->
    <usb-device vendor-id="9025" />

    <!-- 0x16C0 / 0x0483: Teensyduino  -->
    <usb-device vendor-id="5824" product-id="1155" />

    <!-- 0x10C4 / 0xEA60: CP210x UART Bridge -->
    <usb-device vendor-id="4292" product-id="60000" />

    <!-- 0x067B / 0x2303: Prolific PL2303 -->
    <usb-device vendor-id="1659" product-id="8963" />
</resources>


CP работает, проверил. Пролайфик не захотел, там микросхема 5в, планшет затребовал для нее доп.питание.
...
Рейтинг: 0 / 0
Serial Port
    #38658589
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman
И запрос на рут доступ всплывает.

Я работаю на андроиде 4.2.2 может это новая "плющка" этой ОС?? на подобии той, что в 4.2.2 нельзя устанавливать приложения на СДкарту.. только в внутреннюю память...

У меня "спец приложения" по открыванию рут доступа для всей системы тоже не захотели работать на устройстве.
...
Рейтинг: 0 / 0
Serial Port
    #38658846
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erЯ работаю на андроиде 4.2.2 может это новая "плющка" этой ОС??
Если и "плюшка", то от производителя железки, самим андроидом поддерживается вплоть до 4.4.х и, думаю, дальше будет если не так-же, то лучше.

В usb-serial-for-android имеется ошибка при работе с cp2102 в методе setParameters. Ниже исправление:
Код: 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.
public void setParameters(int baudRate, int dataBits, int stopBits, int parity)
        throws IOException {
    setBaudRate(baudRate);

    int config = 0;
    switch (dataBits) {
        case DATABITS_5:
            config |= 0x0500;
            break;
        case DATABITS_6:
            config |= 0x0600;
            break;
        case DATABITS_7:
            config |= 0x0700;
            break;
        case DATABITS_8:
            config |= 0x0800;
            break;
        default:
            config |= 0x0800;
            break;
    }

    switch (parity) {
        case PARITY_ODD:
            config |= 0x0010;
            break;
        case PARITY_EVEN:
            config |= 0x0020;
            break;
    }

    switch (stopBits) {
        case STOPBITS_1:
            config |= 0;
            break;
        case STOPBITS_2:
            config |= 2;
            break;
    }
    setConfigSingle(SILABSER_SET_LINE_CTL_REQUEST_CODE, config);

}

...
Рейтинг: 0 / 0
Serial Port
    #38658851
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

у меня нет возможность подключить ADB к устройству ... там что-то муторно описано производителем... мне во всем приходится самому разбираться.. UserManual "5летней" давности ... половина того что в нем написано не работает...

Можешь сказать, когда выполняется код

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
su = Runtime.getRuntime().exec("su");
String cmd = "chmod 666 " + device.getAbsolutePath() + "\n"
+ "exit\n";
su.getOutputStream().write(cmd.getBytes());
if ((su.waitFor() != 0) || !device.canRead()
|| !device.canWrite()) {
throw new SecurityException();
}*/



у тебя в консоли при вводе ( ls -l ) права визуально меняются?
...
Рейтинг: 0 / 0
Serial Port
    #38658880
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какие ты ставил доступы в AndroidManifest ??
...
Рейтинг: 0 / 0
Serial Port
    #38658893
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erу тебя в консоли при вводе ( ls -l ) права визуально меняются?
На планшете не проверить, т.к. дата кабель сломан. Тестирую устанавливая через инет. Могу только на эмуляторе посмотреть.

BoJI4erкакие ты ставил доступы в AndroidManifest ??
Там ничего необычного, все как в примере. Сам теперь подсел на usb serial for android.
Код: xml
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.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="ru.wadman.serialporttest.app"
          android:versionCode="3"
          android:versionName="1.2" >

    <application
        android:label="@string/app_name"
        android:name="Application" >
        <activity
            android:label="@string/app_name"
            android:name="MainMenu" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="SerialPortPreferences" >
        </activity>
        <activity android:name="ConsoleActivity" >
        </activity>
        <activity android:name="LoopbackActivity" >
        </activity>
        <activity android:name="Sending01010101Activity"></activity>
    </application>

    <uses-sdk android:minSdkVersion="10" />

</manifest>

...
Рейтинг: 0 / 0
25 сообщений из 96, страница 2 из 4
Форумы / Android [игнор отключен] [закрыт для гостей] / Serial Port
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]