Hi,
It seems that the reply to the RIL_REQUEST_GPRS_REGISTRATION_STATE is not
formatted properly. The RIL interface for Éclair dictates this implementation:
/**
* RIL_REQUEST_GPRS_REGISTRATION_STATE
*
* Request current GPRS registration state
*
* "data" is NULL
* "response" is a "char **"
* ((const char **)response)[0] is registration state 0-5 from TS 27.007
10.1.20 AT+CGREG
* ((const char **)response)[1] is LAC if registered or NULL if not
* ((const char **)response)[2] is CID if registered or NULL if not
* ((const char **)response)[3] indicates the available radio technology, where:
* 0 == unknown
* 1 == GPRS only
* 2 == EDGE
* 3 == UMTS
* 9 == HSDPA
* 10 == HSUPA
* 11 == HSPA
*
* LAC and CID are in hexadecimal format.
* valid LAC are 0x0000 - 0xffff
* valid CID are 0x00000000 - 0x0fffffff
*
* Please note that registration state 4 ("unknown") is treated
* as "out of service" in the Android telephony system
*
* Valid errors:
* SUCCESS
* RADIO_NOT_AVAILABLE
* GENERIC_FAILURE
*/
I remember tweaking the reference RIL for correct GPRS registration state
reporting for our setup with a broadband 3G modem. I believe the ST-E RIL got
it right. Take a peek inside:
http://android.git.kernel.org/?p=platform/vendor/st-ericsson/u300.git;a=blob;f=u300-ril-network.c;h=50c672c7c7a7cffe2212ac878e363e530a795eeb;hb=HEAD
..more specifically the function called requestRegistrationState, which formats
the reply for upper layers from the AT response. It also depends on what your
modem sends back - different modems could report in different ways.
Try porting this exact function into your RIL.
---
Henrik Uhrenfeldt
Chief Software Engineer
Ixonos Denmark ApS
Niels Jernes Vej 10,
DK-9220 Aalborg Ø, Denmark
mobile +45 4030 2607
email: [email protected]
http://www.ixonos.com
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of bryan.c.hsu
Sent: 9. juni 2010 11:56
To: [email protected]; 'android-porting'
Subject: 答复: [android-porting] signal of gprs is zero
Hi,
I think u can check the parameters of the CREG or COPS.
It maybe caused by the wrong parameters from BP.
Maybe u need to modify ril implementation for these two AT commands.
Br.
-----邮件原件-----
发件人: [email protected]
[mailto:[email protected]] 代表 Weber
发送时间: 2010年6月9日 17:06
收件人: android-porting
主题: [android-porting] signal of gprs is zero
Hi,everyone
I have ported eclair2.1 to my board.
at first ,I can dial a call and send sms(the signal are good--full or
nearly full)
but the gprs could not be used,mms can not be sent
then I found that the apns are empty ,so I modify the apns-conf.xml in
system/etc
now I can see the G flag in the top bar,and the signal none(without
little cross)---if it is not connected there will be a little cross on
the signal flag
here are the logs:
535 D/RILJ ( 781): [0027]< GPRS_REGISTRATION_STATE {2, ffffffff,
ffffffff}
536 D/AT ( 676):
537 D/AT ( 676):
538 D/AT ( 676): +CREG: 2,2
539 D/AT ( 676):
540 D/AT ( 676):
541 D/AT ( 676):
542 D/AT ( 676): OK
543 D/AT ( 676):
544 D/AT ( 676): AT< +CREG: 2,2
545 D/AT ( 676): AT< OK
546 D/RIL ( 676): onRequest: QUERY_NETWORK_SELECTION_MODE
547 D/AT ( 676): AT> AT+COPS?
548 D/AT ( 676): AT+COPS?
549 D/RILJ ( 781): [0028]< REGISTRATION_STATE {2, ffffffff,
ffffffff}
550 W/GSM ( 781): error parsing RegistrationState:
java.lang.NumberFormatException: unable to parse 'ffffffff' as integer
it seems that the GPRS state (fffffff) is wrong.
could you tell me what are the problems ?
Thanks
-Weber
--
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting
--
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting
--
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting