Отсутствующие строки журнала RILJ для соответствия состоянию вызова Android - PullRequest
0 голосов
/ 18 февраля 2019

Иногда возникает ошибка при мониторинге состояния вызовов на моих телефонах Android (Samsung Galaxy S6-8; OS: Android 6-8) с использованием вывода RILJ в adb logcat, и я не знаю, откуда это может прийти.

Что я делаю:

  1. Считайте выходные данные adb logcat через "logcat -b main -v long" и "logcat -b radio -v long"
  2. Сопоставьте каждую строку журнала, используя фильтр регулярных выражений "
  3. , чтобы сопоставить каждую строку с ее состоянием: НАБОР, ПРЕДУПРЕЖДЕНИЕ, АКТИВНЫЙ, ВХОДЯЩИЙ, ЗАДЕРЖКА, ОЖИДАНИЕ

Результат:

Кажется, это работает хорошо, вот пример выходных данных для вызова между A- и B-стороной:

A-Party 02-18 14:57:00.796: D/RILJ(4544): [0899]> GET_CURRENT_CALLS [SUB0]
A-Party 02-18 14:57:00.804: D/RILJ(4544): [0899]< GET_CURRENT_CALLS {[id=1,DIALING,toa=129,norm,mo,0,voc,noevp,,cli=1,,1] } [SUB0]
B-Party 02-18 14:57:42.956: D/RILJ(4494): [1856]> GET_CURRENT_CALLS [SUB0]
B-Party 02-18 14:57:42.963: D/RILJ(4494): [1856]< GET_CURRENT_CALLS {[id=1,INCOMING,toa=145,norm,mt,0,voc,noevp,,cli=1,,1] } [SUB0]
A-Party 02-18 14:57:02.869: D/RILJ(4544): [0902]> GET_CURRENT_CALLS [SUB0]
A-Party 02-18 14:57:02.870: D/RILJ(4544): [0903]> GET_CURRENT_CALLS [SUB0]
A-Party 02-18 14:57:02.873: D/RILJ(4544): [0902]< GET_CURRENT_CALLS {[id=1,ALERTING,toa=129,norm,mo,0,voc,noevp,,cli=1,,1] } [SUB0]
A-Party 02-18 14:57:02.879: D/RILJ(4544): [0903]< GET_CURRENT_CALLS {[id=1,ALERTING,toa=129,norm,mo,0,voc,noevp,,cli=1,,1] } [SUB0]
A-Party 02-18 14:57:02.909: D/RILJ(4544): [0904]> GET_CURRENT_CALLS [SUB0]
A-Party 02-18 14:57:02.917: D/RILJ(4544): [0904]< GET_CURRENT_CALLS {[id=1,ALERTING,toa=129,norm,mo,0,voc,noevp,,cli=1,,1] } [SUB0]
B-Party 02-18 14:57:59.539: D/RILJ(4494): [1862]> GET_CURRENT_CALLS [SUB0]
A-Party 02-18 14:57:18.988: D/RILJ(4544): [0906]> GET_CURRENT_CALLS [SUB0]
B-Party 02-18 14:57:59.545: D/RILJ(4494): [1862]< GET_CURRENT_CALLS {[id=1,ACTIVE,toa=145,norm,mt,0,voc,noevp,,cli=1,,1] } [SUB0]
A-Party 02-18 14:57:18.999: D/RILJ(4544): [0906]< GET_CURRENT_CALLS {[id=1,ACTIVE,toa=129,norm,mo,0,voc,noevp,,cli=1,,1] } [SUB0]
B-Party 02-18 14:58:31.225: D/RILJ(4494): [1865]> GET_CURRENT_CALLS [SUB0]
B-Party 02-18 14:58:31.251: D/RILJ(4494): [1865]< GET_CURRENT_CALLS {} [SUB0]
A-Party 02-18 14:57:55.350: D/RILJ(4544): [0909]> GET_CURRENT_CALLS [SUB0]
A-Party 02-18 14:57:55.363: D/RILJ(4544): [0909]< GET_CURRENT_CALLS {} [SUB0]
A-Party 02-18 14:58:27.693: D/RILJ(4544): [0924]> GET_CURRENT_CALLS [SUB0]

Проблема:

В некоторых случаях кажется, что отсутствуют сообщения журнала.Может случиться так, что строка

A-Party 02-18 14:57:18.999: D/RILJ(4544): [0906]< GET_CURRENT_CALLS {[id=1,ACTIVE,toa=129,norm,mo,0,voc,noevp,,cli=1,,1] } [SUB0]

отсутствует.Таким образом, состояние вызова ACTIVE не зарегистрировано, хотя на экране моего телефона я вижу, что на вызов ответили, и он действительно активен.

Я пытаюсь сделать его более стабильным в течение некоторого времени, но у меня естьне знаю, в чем проблема.Я уже подумал / попробовал следующее, но не знаю в деталях, может ли это быть причиной этого:

  1. Может ли это быть "ошибкой" в RILJ из-за отсутствия лог-линии, илиЭто на 100% надежно?
  2. Есть ли еще один более надежный сервис / возможность отслеживать состояния вызовов?Кажется, что телефон правильно знает состояние, даже если журнал RILJ отсутствует, поэтому он должен каким-то образом узнать из другого источника.
  3. Может ли быть проблема adb logcat, что некоторые сообщения просто теряются?

Я исхожу из идей и был бы очень благодарен, если у кого-то есть какие-либо ответы или другие подсказки, чтобы исправить эту проблему и обеспечить 100% надежное отслеживание состояния вызова.

Спасибо

Редактировать:

Я несколько раз видел использование процессора на 100%, возможно ли, что журналы adb "теряются" из-за производительности процессора, или я могу быть уверен, что журналыПолучено полностью, когда использование становится ниже?

...