我正在使用Kivy开发移动应用程序。我想访问电话簿(联系人列表)。有没有像使用plyer访问移动传感器这样简单的方法。
注意:我不是专家。
答案 0 :(得分:2)
首先,您需要获得权限,将 READ_CONTACTS 预设添加到您的构建器规范中。
现在,你应该使用 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/