[问题] AIDL永远不会connect

楼主: winsummer (winsummer)   2017-07-21 15:01:21
各位前辈好
我的程式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>
不知道原因出在那边
谢谢
作者: ssccg (23)   2017-07-21 15:09:00
你的intent干麻setPackage? 传的还是class不是package?另外你new Intent用到的是String action这个ctor简单的说你现在这个写法,会变成去找package name为com.topway.swiftplayservice.IPlayAIDLService的App中manifest里有个intent filter的action叫做com.topway.swiftplayservice.IPlayAIDLService的service但是你manifest里action是SwiftPlayService至于package name是什么你没写,不过我想不会是class name你不加或是改成别的当然也没用,因为没有符合的action你是要呼叫别的App中的service?manifest不用写,Intent要看对方的manifest怎么写的
楼主: winsummer (winsummer)   2017-07-21 17:05:00
那getPackage也不用写吗
作者: ssccg (23)   2017-07-21 17:26:00
setPackage是限定找特定的app,通常是像Intent.ACTION_VIEW这种会找到一堆的Intent时选特定app用如果有正确的ComponentName(package name + class name)其他都不需要,如果是用action,像这种service通常也不太会重复也不需要
楼主: winsummer (winsummer)   2017-07-24 11:04:00
了解 谢谢解答
作者: KeySabre (KeySabreur)   2017-08-04 02:17:00
intent 该是 implicit 或 explicit 的问题

Links booklink

Contact Us: admin [ a t ] ucptt.com