(из извлечено следующее сообщение из моего блога об этом )
. Большая причина не получить ваше разрешение в настоящее время - это потому, что у вашего проекта есть targetSdkVersion
23 или выше, и разрешение, которое вы запрашиваете, является «опасным». В Android 6.0 это включает в себя:
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
ADD_VOICEMAIL
BODY_SENSORS
CALL_PHONE
CAMERA
GET_ACCOUNTS
PROCESS_OUTGOING_CALLS
READ_CALENDAR
READ_CALL_LOG
READ_CELL_BROADCASTS
READ_CONTACTS
READ_EXTERNAL_STORAGE
READ_PHONE_STATE
READ_SMS
RECEIVE_MMS
RECEIVE_SMS
RECEIVE_WAP_PUSH
RECORD_AUDIO
SEND_SMS
USE_SIP
WRITE_CALENDAR
WRITE_CALL_LOG
WRITE_CONTACTS
WRITE_EXTERNAL_STORAGE
Для этих разрешений не только для вашего targetSdkVersion
23+ приложения необходимо иметь
элемент (ы), но вы также должны запрашивать эти разрешения во время выполнения от пользователя на устройствах Android 6.0+, используя такие методы, как checkSelfPermission()
и requestPermissions()
.
Как временный обходной путь, оставьте targetSdkVersion
ниже 23.
Однако, в конце концов, у вас будет некоторая причина, чтобы ваш targetSdkVersion
был 23 или выше. В то время вам нужно будет настроить приложение, чтобы использовать новую систему разрешения во время выполнения. В документации для Android имеется страница, посвященная этому разделу .
Возможно, я обозреваю вещи, но это то, что вам нужно?
import nltk
s = '(ROOT (S (NP (NNP Europe)) (VP (VBZ is) (PP (IN in) (NP (DT the) (JJ same) (NNS trends)))) (. .)))'
tree = nltk.tree.Tree.fromstring(s)
def traverse_tree(tree):
# print("tree:", tree)
for subtree in tree:
if type(subtree) == nltk.tree.Tree:
traverse_tree(subtree)
traverse_tree(tree)
Он пересекает вашу глубину дерева.