看板 AndroidDev 關於我們 聯絡資訊
各位前輩好 我的程式ServiceConnection永遠不會被呼叫 不知道是那裏出了問題 Debug了2天.. 貼上程式碼 http://ideone.com/46JLBU 另外 AndroidManifest.xml 也加上了 <service android:name="com.topway.swiftplayservic.IPlayAIDLServicee" android:process=":remote" android:exported="true" android:enabled="true"> <intent-filter> <action android:name="SwiftPlayService"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </service> 不知道原因出在那邊 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 202.175.124.66 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1500620486.A.863.html
ssccg: 你的intent幹麻setPackage? 傳的還是class不是package? 07/21 15:09
ssccg: 另外你new Intent用到的是String action這個ctor 07/21 15:12
你好 我一開始也沒有setPackage 是看了這個才加上去 https://goo.gl/5CsxZC 我不加或是把他改成intent.setPackage("com.topway.swiftplayservice"); 也是沒有解決問題 另外你new Intent用到的是String action這個ctor 這個我不懂是什麼意思 new Intent我試了很多方法 例如 Intent intent = new Intent(MainActivity.this, IPlayAIDLService.class); 也還是不行 謝謝你的回覆 看著我的bindService一直回傳false 我也快不行了... ※ 編輯: winsummer (202.175.124.66), 07/21/2017 15:29:08 ※ 編輯: winsummer (202.175.124.66), 07/21/2017 15:34:53
ssccg: 簡單的說你現在這個寫法,會變成去找package name為 07/21 16:00
ssccg: com.topway.swiftplayservice.IPlayAIDLService的App中 07/21 16:00
ssccg: manifest裡有個intent filter的action叫做 07/21 16:01
ssccg: com.topway.swiftplayservice.IPlayAIDLService的service 07/21 16:01
ssccg: 但是你manifest裡action是SwiftPlayService 07/21 16:03
ssccg: 至於package name是什麼你沒寫,不過我想不會是class name 07/21 16:03
ssccg: 你不加或是改成別的當然也沒用,因為沒有符合的action 07/21 16:08
你好 在此先感謝你的回覆 我的package name 為 package com.example.fox.watchtest; 而AIDL是外部提供的jar, 不是我開發的 分別為 import com.topway.swiftplayservice.IPlayAIDLService; import com.topway.swiftplayservice.PlayParams; 所以我要改成 intent.setPackage("com.example.fox.watchtest"); 然後manifest裡action也要更改為 com.example.fox.watchtest 這樣? 感謝回覆 ※ 編輯: winsummer (202.175.124.66), 07/21/2017 16:28:03
ssccg: 你是要呼叫別的App中的service? 07/21 16:35
ssccg: manifest不用寫,Intent要看對方的manifest怎麼寫的 07/21 16:40
winsummer: 那getPackage也不用寫嗎 07/21 17:05
ssccg: setPackage是限定找特定的app,通常是像Intent.ACTION_VIEW 07/21 17:26
ssccg: 這種會找到一堆的Intent時選特定app用 07/21 17:27
ssccg: 如果有正確的ComponentName(package name + class name) 07/21 17:27
ssccg: 其他都不需要,如果是用action,像這種service通常也不太會 07/21 17:29
ssccg: 重複也不需要 07/21 17:29
winsummer: 了解 謝謝解答 07/24 11:04
KeySabre: intent 該是 implicit 或 explicit 的問題 08/04 02:17