Pyjnius: ์—ฐ๋ฝ์ฒ˜๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

์— ๋งŒ๋“  2015๋…„ 11์›” 11์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: kivy/pyjnius

์ด ์ฝ”๋“œ๋Š” ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉํ•˜์ง€ ์•Š๊ณ  ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

def build(self):
    try:
        return Label(text=str(dir(autoclass('android.provider.ContactsContract.Contacts'))).replace(' ', '\n'))
    except Exception as ex:
        return Label(text=str(ex).replace(' ', '\n'))

์ด ๊ฒฝ์šฐ

def build(self):
    try:
        contract = autoclass('android.provider.ContactsContract')
        return Label(text=str(dir(contract.Contacts)).replace(' ', '\n'))
    except Exception as ex:
        return Label(text=str(ex).replace(' ', '\n')) 

catch ์˜ˆ์™ธ ์œ ํ˜• ๊ฐœ์ฒด 'android.provider.ContactsContract'์—๋Š” '์—ฐ๋ฝ์ฒ˜' ์†์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๊ทธ๋Ÿฌํ•œ ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•œ๋‹ค๊ณ  ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. http://developer.android.com/intl/ru/reference/android/provider/ContactsContract.Contacts.html

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฐ๋ฝ์ฒ˜๋ฅผ ์ง์ ‘ ๊ฐ€์ ธ์˜ค์‹ญ์‹œ์˜ค.

Contacts = autoclass('android.provider.ContactsContract$Contacts')

'$'๋Š” ์ค‘์ฒฉ ํด๋ž˜์Šค์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  5 ๋Œ“๊ธ€

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฐ๋ฝ์ฒ˜๋ฅผ ์ง์ ‘ ๊ฐ€์ ธ์˜ค์‹ญ์‹œ์˜ค.

Contacts = autoclass('android.provider.ContactsContract$Contacts')

'$'๋Š” ์ค‘์ฒฉ ํด๋ž˜์Šค์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์งˆ๋ฌธ ํ•˜๋‚˜ ๋”.
"ContactsContract.Contacts._ID"๋ฅผ ์–ป๋Š” ๋ฐฉ๋ฒ•?

Contacts = autoclass('android.provider.ContactsContract$Contacts')
System.out.println(' '.join(dir(Contacts))) # CONTACT_CHAT_CAPABILITY CONTACT_LAST_UPDATED_TIMESTAMP CONTACT_PRESENCE CONTACT_STATUS CONTACT_STATUS_ICON CONTACT_STATUS_LABEL CONTACT_STATUS_RES_PACKAGE CONTACT_STATUS_TIMESTAMP CONTENT_FILTER_URI CONTENT_FREQUENT_URI CONTENT_GROUP_URI CONTENT_ITEM_TYPE CONTENT_LOOKUP_URI CONTENT_MULTI_VCARD_URI CONTENT_STREQUENT_FILTER_URI CONTENT_STREQUENT_URI CONTENT_TYPE CONTENT_URI CONTENT_VCARD_TYPE CONTENT_VCARD_URI CORP_CONTENT_URI CUSTOM_RINGTONE DISPLAY_NAME DISPLAY_NAME_ALTERNATIVE DISPLAY_NAME_PRIMARY DISPLAY_NAME_SOURCE ENTERPRISE_CONTACT_ID_BASE EXTRA_ADDRESS_BOOK_INDEX EXTRA_ADDRESS_BOOK_INDEX_COUNTS EXTRA_ADDRESS_BOOK_INDEX_TITLES FILTER FILTER_NONE FILTER_WIDGET HAS_PHONE_NUMBER INDEX_IN_SIM INDICATE_PHONE_SIM IN_DEFAULT_DIRECTORY IN_VISIBLE_GROUP IS_SDN_CONTACT IS_USER_PROFILE LAST_TIME_CONTACTED LOOKUP_KEY NAME_RAW_CONTACT_ID PHONETIC_NAME PHONETIC_NAME_STYLE PHOTO_FILE_ID PHOTO_ID PHOTO_THUMBNAIL_URI PHOTO_URI PINNED QUERY_PARAMETER_VCARD_NO_PHOTO SEND_TO_VOICEMAIL SEND_TO_VOICEMAIL_SIP SEND_TO_VOICEMAIL_VT SORT_KEY_ALTERNATIVE SORT_KEY_PRIMARY STARRED TIMES_CONTACTED _COUNT _ID ...
_ID = Contacts._ID # Error

https://github.com/kivy/pyjnius/issues/169 ์™€ ๊ด€๋ จ๋œ pyjinius์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง์ ‘ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

CONTACTS_ID = '_id'

๊ทธ๋Ÿฐ ๋‹ค์Œ ์—ฐ๋ฝ์ฒ˜์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ Contacts._ID๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  CONTACTS_ID๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
_COUNT๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

์ „์ฒด ์—ฐ๋ฝ์ฒ˜ ๋ชฉ๋ก์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰