【发布时间】:2017-06-15 03:03:27
【问题描述】:
我正在使用 Kivy 开发一个移动应用程序。我想访问电话簿(联系人列表)。有没有一种简单的方法,比如使用 plyer 访问移动传感器。
注意:我不是安卓专家。
【问题讨论】:
标签: android kivy contacts android-contacts
我正在使用 Kivy 开发一个移动应用程序。我想访问电话簿(联系人列表)。有没有一种简单的方法,比如使用 plyer 访问移动传感器。
注意:我不是安卓专家。
【问题讨论】:
标签: android kivy contacts android-contacts
首先您需要获得许可,将 READ_CONTACTS 权限添加到您的 buildozer 规范中。
现在,您应该像这样使用 pyjnius 来使用 Java SDK:
-这未经测试-
PythonActivity=autoclass("org.renpy.android.PythonActivity")
ContactsContract=autoclass("android.provider.ContactsContract")
cr = PythonActivity.mActivity.getContentResolver()
null = None # this will help to convert java examples into python ones :)
cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
null, null, null, null)
if (cur.getCount() > 0):
while (cur.moveToNext()):
id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)) #I think this is not DISPLAY_NAME in all versions ...
print("->", id, name)
#you can further query contact by its id
逻辑取自这个答案:android get all contacts
还有一个您可能想要测试的 plyer 拉取请求:https://github.com/kivy/plyer/pull/125/
【讨论】: