#android #clojure #clojure-java-interop #neko
#Android #clojure #clojure-java-interop #neko
Вопрос:
Я пытаюсь вызвать getSystemService
(метод Activity
) для доступа к датчикам, но, похоже, его не существует.
Вот код, который я попробовал:
(in-ns 'com....) ; Some Neko project
(.getSystemService a) ; a is :def of Activity
Я даже проверил все методы a
с
(use '[clojure.reflect :as r])
(require '[clojure.pprint :only print-table])
(print-table (:members (r/reflect a)))
Там было getSystemService
в списке.
Но почему-то я не могу это вызвать: Clojure говорит, что такого метода нет.
UPDATE: getSystemService
не является статическим методом, так что, я думаю, в этом причина.
Но все же, есть ли способ?
Комментарии:
1. Я не эксперт по Android, но, похоже, что он, например,
Activity.getSystemService()
принимаетString
параметр(.getSystemService a "window")
. По крайней мере, так говорит Activity javadoc .2. @ez121sl Вы были правы, спасибо! Можете ли вы опубликовать ответ? Я могу сделать это сам, но, думаю, это несправедливо.
Ответ №1:
Согласно Activity
javadoc, Activity.getSystemService()
принимает String
аргумент. Не существует перегруженного метода, который не принимал бы аргументов. Сообщение о том, что такого метода не существует, означает, что не существует метода с таким именем, который не принимал бы аргументов. Попробуйте вызвать, getSystemService
используя String
аргумент, например:
(.getSystemService a "window")