2016-03-23 16 views
1

現在、私は自分自身をナンセンススクリプトに慣れさせて、自分ができることを理解しようとしています。私が興味を持って興味深いものの一つは、ネイティブのAndroid機能をどのように使うことができるかということです。Androidアクセシビリティサービスをネイティブスクリプトと組み合わせて使用​​

理解と学習の挑戦として、私はアプリでいくつかのパスワードマネージャアプリのように特定の値をテキストフィールドに入力する可能性を選択しました。私がそれを正しく理解すれば、それは大きなブードーではありません。

どのようにして2つの例が見つかりましたか。最初のものはkeepass2androidアプリの自動入力機能です。ソースは:https://keepass2android.codeplex.com/SourceControl/changeset/view/9ddc142d987880118be38ee1d69943f2809738d3#src/java/KP2ASoftkeyboard_AS/app/src/main/java/keepass2android/autofill/AutoFillService.java

他のサンプルでは、​​私がここで見つける:AccessibilityNodeInfo - send text

はまず迅速かつ汚い私は、Androidのネイティブ機能がnativescriptでどのように機能するかを知る、app.jsをハック。ですから、私は何とかトリガーをかけたいのですが、initだけが起動されます(これまでのところ私も理解しています)。

var applicationModule = require("application"); 
var platform = require("platform"); 

var context = applicationModule.android.context; 
android.accessibilityservice.AccessibilityService; 

var aa = android.accessibilityservice.AccessibilityService.extend({ 
     init: function() { 
       console.log("init()"); 
     }, 
     onInit: function() { 
       console.log("onInit()"); 
     }, 
     create: function() { 
       console.log("create()"); 
     }, 
     onCreate: function() { 
       console.log("onCreate()"); 
     }, 
     destroy: function() { 
       console.log("destroy()"); 
     }, 
     onDestroy: function() { 
       console.log("onDestroy()"); 
     }, 
     accessibilityEvent: function(event) { 
       console.log("accessibilityEvent"); 
     }, 
     onAccessibilityEvent: function(event) { 
       console.log("onAccessibilityEvent"); 
     }, 
     interrupt: function() { 
       console.log("interrupt"); 
     }, 
     onInterrupt: function() { 
       console.log("interrupt"); 
     }, 
     serviceConnected: function() { 
       console.log("serviceConnected"); 
     }, 
     onServiceConnected: function() { 
       console.log("onServiceConnected"); 
     } 
}); 

var a = new aa(); 

はおそらくandroid.accessibilityservice.AccessibilityServiceは何とかそれが働いて得る、別の方法で拡張する必要があります。しかしどうですか?

onAccessibilityEvent関数がnativescriptでトリガーされるのは大したことです。

編集:

私はいくつかの進歩を遂げました。他のネイティブスクリプトのソースとサンプルを見つけ、自分のコードを変更しました。今:

var applicationModule = require("application"); 
var platform = require("platform"); 
var utils = require("utils/utils"); 

var context = android.content.Context; 

var ad = utils.ad.getApplicationContext(); 

var aa = ad.getSystemService(context.ACCESSIBILITY_SERVICE); 

しかし、方法は、私はonAccessibilityEventを登録することができます現在私にとっては明らかではありません。 http://developer.android.com/training/accessibility/service.html

とonAccessibilityEventオーバーライドであなたのロジックを配置:

+0

あなたのために機能しましたか?更新されたコードを共有できますか? – codef0rmer

答えて

1

あなたは、次の例のようにあなたのサービス(あなたの最初のコードブロックからのクラス)を登録する必要があります。

関連する問題