не удается получить доступ к getSystemService

#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")