推 givemepass: 不太懂 是指你無法動remote的code嗎?11/12 14:01
稍微解釋一下我想做的事情好了,首先有兩個 App:
Caller -----> 某 IME 的 InputMethodService
MySvr -----> 我製作的 Service , 會產生浮動視窗
先透過 Xposed 來 hook Caller 鍵盤跳出的事件,也就是當鍵盤跳出後
透過 bindService 啟動 MySvr , 這樣一來 MySvr 的浮動視窗就會出現
但我想在想要點選這個浮動式窗上的按鈕後,由 Caller 顯示一個 Dailog,
(因為之後要取得 InputMethodService 中的 InputConnection )
所以我的想法是:
1. MySvr 加入
public void setListener(MyListener l){
this.listener = l;
}
2. 設定當浮動視窗的按鈕被按下時,判斷:
if( listener!=null ) listener.onWindowClick();
3. 傳入 bindService 的 ServiceConnection 實作 MyListener,
當 onServiceConnected 時,透過 IBinder 取得 MySvr,
接著透過 setListener 把自己傳過去:
MySvr m=MyBinder.Stub.asInterface(iBinder);
m.setListsner(this);
大概就像這樣,不知道該怎麼做會比較OK ?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.60.161.234
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1447372812.A.296.html
→ ssccg: 你的MyListener一樣用aidl定義就可以 11/13 09:34
→ ssccg: 總之會跨process傳的物件Type就用aidl 11/13 09:37