Я пытаюсь написать приложение, чтобы поговорить с Rild. И да, я знаю, что это не является политически корректным, но это встроенное промышленное приложение телеметрии, поэтому меня не волнует пользовательский опыт, портативность и все такое.
Проблема в том, что когда я пытаюсь подключиться, я получаю исключение java.io "Permission denied". Кто-нибудь может мне помочь?
Телефон (Nexus One) имеет root-права на Cyanogenmod 7, и приложение работает как суперпользователь с помощью приложения "SuperUser" из Маркета.
Мой код (сокращенно):
try {
mSocket = new LocalSocket();
mSockAddr = new LocalSocketAddress( "rild", LocalSocketAddress.Namespace.RESERVED );
mSocket.connect( mSockAddr );
}
catch( Exception e ) {
dbg.p( "connect failed: "+e );
}
Я вижу сокеты rild (и rild-debug) в /dev/socket.
srw-rw---- 1 root radio 0 Feb 13 19:14 rild
srw-rw---- 1 radio system 0 Feb 13 19:14 rild-debug
Может быть, приложение Dialer уже подключено и включает сокет?
Кстати, я изначально пытался использовать фреймворки, но получил кучу ошибок, в основном о неизвестных классах java и сторонних, поэтому я сдался после нескольких дней потянув за волосы. У меня также есть STFW и этот сайт, вокруг которого много танцев, но нет конкретных советов.
Любая помощь с благодарностью.
-John