Прочитать журнал вызовов от Android Python - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь скомпилировать Python код прямо на моем Android телефоне через Q Python 3L, и это хорошо для некоторых первоначальных примеров. Теперь я хочу прочитать журнал вызовов, и вот мой код.

from androidhelper import sl4a  
droid = sl4a.Android()

myconst = droid.getConstants("android.provider.CallLog$Calls").result
print(myconst['CONTENT_URI'])
calls=droid.queryContent(myconst['CONTENT_URI'],["number","duration","date","type"]).result

В последней строке выше он выдает NullPointerException и - после многих проб и ошибок и поисков в Google - я почти уверен, что root причина - отсутствие авторизации.

Можете ли вы подтвердить, что это так (или вы обнаружили ошибку, вопреки тому, что я считаю), и, пожалуйста, укажите мне некоторую документацию для добавления авторизации запросить, если это соответствует моему указанному c контексту кода?

1 Ответ

0 голосов
/ 03 апреля 2020

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

Решение (когда человек действительно знает, что делать и где искать) можно найти по этому вопросу. github page . Часто задаваемые вопросы гласят:

A: Почему так много веток? В: Поскольку Google Play и некоторые магазины приложений предъявляют строгие требования к разрешениям приложений, они требуют разных разрешений, мы используем разные коды филиалов, например, 3 означает, что это Q Python3, L означает ОГРАНИЧЕННОЕ, S означает ЧУВСТВИТЕЛЬНОЕ разрешение.

После специальной (одноразовой) установки с помощью загрузки на Android необходимо вручную добавить разрешение Телефон в приложение, используя управление разрешениями Android. Загруженное приложение заменит приложение, установленное через Google Play, и вы увидите, что ваш скрипт уже там, готов к запуску, надеюсь, без NPE.

...