2012-10-01 14 views
7

Ich habe kürzlich untersucht, wie ich über JRuby in SL4A auf Android-Bibliotheken zugreifen kann. Ich weiß, dass es möglich ist, Apps mit Ruboto zu entwerfen, aber ich möchte einfach ein einfaches Skript einrichten, um auf APIs zuzugreifen, die das aktuelle SL4A nicht bietet. Ich kann normale Gläser und ähnliches importieren, aber ich war nicht in der Lage Androids API zu bekommen. Genauer gesagt möchte ich auf "android.nfc" zugreifen. Gibt es einen Weg, dies zu erreichen, den ich noch nicht herausgefunden habe, oder ist es möglich, nicht zu arbeiten? SL4A gibt jedoch an, dass JRuby eine direkte API-Bridge anbietet.Verwenden von JRuby zum direkten Anrufen von Android-Java-Methoden

Danke, Clement

+0

Das Paket android.nfc ist Teil von android.jar, Sie sollten also darauf zugreifen können. Ist es der Aufruf getSystemService (NFC_SERVICE), mit dem Sie Probleme haben? – theFunkyEngineer

Antwort

0

Können Sie schließen Ihre JRuby Code? Bauen Sie Ihren Klassenpfad richtig und machen Sie dann auch den java_import?

Ich habe eine Ruby-Datei nur für meine Gläser in meine Classpath geladen, die ich in jeder .rb Datei java_jars.rb es enthält die folgenden genannt erfordern:

Dir["target/dependency/\*.jar"].each { |jar| require jar } 

dann in der Haupt Rubin Datei tun dies :

include Java 
require 'java_jars' 
java_import 'com.package.name.blah.ApiClassName' 

def methodName 
    apiObject = com.package.name.blah.ApiClassName.new 
    # don't forget methodName becomes method_name in JRuby 
    apiObject.method_name 
end