You are mixing two different things. You are creating a low-level core system service, and then trying to connect to it as if it is a high-level application service. If you are using service manager to publish it, you need to use service manager (in Java ServiceManager) to access it.
On Mon, Mar 30, 2009 at 10:45 PM, Yi Sun <beyo...@gmail.com> wrote: > Hi Dianne, > Thanks for the reply. Actually here is what I want to do: > On the service side (C code), reusing binder.c in the service_manager > directory. So my code will call > 1. binder_open, > 2. bio stuff to build an io block for adding service, > 3.binder_call to add service to service_manager. > 4. binder_loop to wait for requests. (Just do a quick prototype here, so no > multi-threads) > > On the client side (java), send request to the service I built and receive > replies. > Now, if I run /system/bin/service list, I can see my service like this: > # /system/bin/service list > Found 43 services: > 0 Binder.Test.IBindertest: [] > > But, on the java side, I can not really get the binder object for this > service. The bindService call failed with following error messages: > W/ActivityManager( 581): Unable to start service Intent { > action=Binder.Test.IBindertest }: not found > > Yi > > On Mon, Mar 30, 2009 at 10:01 PM, Dianne Hackborn <hack...@android.com>wrote: > >> If you are writing a low-level system service, the high-level Service API >> (onBind() etc) is irrelevant. The aidl stuff is part of the primitive >> Binder IPC stuff; Service is a much higher-level facility built on top of >> it. >> >> >> On Mon, Mar 30, 2009 at 7:21 PM, beyounn <beyo...@gmail.com> wrote: >> >>> >>> Ok, let me try out the AIDL part, it seems simpler. But I do have a >>> question about it and hope you could give more hits. I took a look on >>> the AIDL, it seems that on the service(server) side, we have to >>> implement onBind and other methods. For my case, does it mean that I >>> don't need to care about the service side works and only need to >>> implement something like RemoteServiceBinding.java in the example code >>> for my self? >>> Thanks >>> Yi >>> >>> On Mar 30, 6:36 pm, Dave Sparks <davidspa...@android.com> wrote: >>> > You can write AIDL to generate your Java binding, or you can write >>> > your own native binding and put a JNI layer on top of that. If you >>> > don't plan on calling your service from native code, AIDL is much >>> > easier. >>> > >>> > On Mar 30, 6:08 pm, beyounn <beyo...@gmail.com> wrote: >>> > >>> > > Hello, >>> > > I'm writing a service by C. My code calls binder to add a service >>> > > called "myservice" into servicemanager. And I can add "myservice" >>> > > without any problem. Also, when I run "/system/bin/service list", it >>> > > shows the service added by me. The question is -- What is the correct >>> > > way to access this service from my application that is written by >>> > > java? >>> > > Thanks >>> > > Yi >>> >>> >> >> >> -- >> Dianne Hackborn >> Android framework engineer >> hack...@android.com >> >> Note: please don't send private questions to me, as I don't have time to >> provide private support. All such questions should be posted on public >> forums, where I and others can see and answer them. >> >> >> >> >> > > > > -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support. All such questions should be posted on public forums, where I and others can see and answer them. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "android-framework" group. To post to this group, send email to android-framework@googlegroups.com To unsubscribe from this group, send email to android-framework+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-framework?hl=en -~----------~----~----~----~------~----~------~--~---