I am still hanging on this issue,

maybe there is someone, who has played around with service and can
provide me some example code, where it works that a service, lying in
one eclipse project is successfully bound to and called maybe by an
activity, which resides lying in another eclipse project??

I hope that I can figure out, what I'm doing wrong by comparison then.

You can contact me directly, if you don't want to post any example
code here..

I'd really appreciate any help, cause I am really stuck, thank you so
much in advance!

regards

On 18 Mai, 09:00, dev_rob <robwiene...@googlemail.com> wrote:
> Hey Dianne,
>
> thanks a lot for your answer.
>
> The package names are the same, but not the app-names.
>
> The .apks are called
>
> New_RPC_Client.apk
>
> and
>
> New_RPC_Server.apk
>
> inside both apks thenamespace/package name is
>
> de.roberlin.new_rpc
>
> This is the same in both apps, because the package has to be declared
> in TestInterface.aidl, which resides in both projects.
>
> I wondered, if those namespaces can be the reason for the fact, that
> the system cannot find theserviceanymore, when I execute the
> client??
>
> When I execute theservicefirst it gets correctly installed as
>
>  "ServiceResolver Table:
>   Non-Data Actions:
>       ...
>       de.roberlin.new_rpc.TestStringService:
>         43731670 de.roberlin.new_rpc/.TestStringService"
>
> To be clear on that, here are both manifest-files:
>
> <?xml version="1.0" encoding="utf-8"?>
> <manifest xmlns:android="http://schemas.android.com/apk/res/android";
>       package="de.roberlin.new_rpc"
>       android:versionCode="1"
>       android:versionName="1.0">
>     <application android:icon="@drawable/icon" android:label="@string/
> app_name">
>         <activity android:name=".New_RPC_Client"
>                   android:label="@string/app_name">
>             <intent-filter>
>                 <action android:name="android.intent.action.MAIN" />
>                 <category
> android:name="android.intent.category.LAUNCHER" />
>             </intent-filter>
>         </activity>
>     </application>
>     <uses-sdk android:minSdkVersion="3" />
> </manifest>
>
> <?xml version="1.0" encoding="utf-8"?>
> <manifest xmlns:android="http://schemas.android.com/apk/res/android";
>       package="de.roberlin.new_rpc"
>       android:versionCode="1"
>       android:versionName="1.0">
>     <application android:icon="@drawable/icon" android:label="@string/
> app_name">
>         <serviceandroid:name=".TestStringService"
>             android:exported="true"
>             android:process=":remote">
>             <intent-filter >
>                 <action
> android:name="de.roberlin.new_rpc.TestStringService"/>
>             </intent-filter>
>         </service>
>     </application>
>     <uses-sdk android:minSdkVersion="3" />
> </manifest>
>
> Then I execute the Client app, in which I try to bind to theService
> with
>
> "String intentAction = "de.roberlin.new_rpc.TestStringService";
>                 Intent iService = new Intent(intentAction);
>                 bindService(iService, myService,
> Context.BIND_AUTO_CREATE);"
>
> but it only leads to DDSM telling me
>
> "05-18 06:46:00.623: WARN/ActivityManager(567): Unable to startserviceIntent 
> { action=de.roberlin.new_rpc.TestStringService }: not
> found"
>
> But as it was registered correctly, it should be found here?!
>
> And if I do  "adb shell dumpsys package" now again, it does not list
> theserviceanymore as described...
>
> Is there any hint for this behaviour and how to solve this?!
>
> Can thenamespace"de.roberlin.new_rpc" in both apps (even if the app-
> names are different) be an issue? as theservicecallcomes from
> inside the client app, maybe it just looks there under
> "de.roberlin.new_rpc" for theservice? if so, how can I put
> TestInterface.aidlin both projects without having the same
> "de.roberlin.new_rpc" in both projects?
>
> Thanks again for any pointers!
>
> On 18 Mai, 04:19, Dianne Hackborn <hack...@android.com> wrote:
>
> > If you have give the .apks the same name, you can't have them both installed
> > at the same time, because they are both effectively the same app.
>
> > You can have classes in whatevernamespaceyou want inside of the .apk (and
> > even publish these in the manifest via fully qualified class names).
>
> > On Sun, May 17, 2009 at 8:37 AM, dev_rob <robwiene...@googlemail.com> wrote:
>
> > > I think it's rather a problem with namespaces. And the package names
> > > in both projects are indeed identical!
>
> > > But as (one of my original questions) both projects have to contain
> > > the TestInterface.aidlthe package names must be the same, because
> > > otherwise there is a different package name in TestInterface.aidland
> > > then it's not the same interface anymore and enforceInterface()
> > > complains about that...
>
> > > If you have a suggestion for this issue, it would be great (I guess
> > > there is a simple solution for this)! I could see then, if that has
> > > something to do with the fact, that theserviceseems not to be
> > > registered after executing the calling activity (project 1).
>
> > > Thanks again!
>
> > > On 17 Mai, 17:21, Dianne Hackborn <hack...@android.com> wrote:
> > > > Er... you are sure that both .apks have different package names?  Anyway
> > > it
> > > > sounds like whatever problem you have has nothing to do with services
> > > > themselves, but just getting both apps installed at the same time?
>
> > > > On Sun, May 17, 2009 at 7:35 AM, dev_rob <robwiene...@googlemail.com>
> > > wrote:
>
> > > > > I now have the TestInterface.aidlin both eclipse projects and project
> > > > > 2 (theserviceproject) is added to project 1's build path.
>
> > > > > I declared theservicein the manifest-file with:
>
> > > > > <serviceandroid:name=".TestStringService"
> > > > >        android:exported="true"
> > > > >        android:process=":remote">
> > > > >        <intent-filter >
> > > > >                <action
> > > android:name="de.roberlin.new_rpc.action.NEW_RPC"/>
> > > > >        </intent-filter>
> > > > > </service>
>
> > > > > and "adb shell dumpsys package" shows it successfully registered to
> > > > > the emulator.
>
> > > > > I try to bind to theservicewith:
>
> > > > > "String intentAction = "de.roberlin.new_rpc.action.NEW_RPC";
> > > > >                        Intent iService = new Intent(intentAction);
> > > > > bindService(iService, myService, Context.BIND_AUTO_CREATE);
>
> > > > > DDMS won't stop telling me:
>
> > > > > "05-17 14:14:34.285: WARN/ActivityManager(567): Unable to start
> > > > >serviceIntent { action=de.roberlin.new_rpc.action.NEW_RPC }: not
> > > > > found"
>
> > > > > In fact, after running project 1 (the activity binding to theservice)
> > > > > and getting the error message, when I do
>
> > > > > "adb shell dumpsys package"
>
> > > > > again, it does not list myserviceanymore. how can this be???
>
> > > > > the steps were:
>
> > > > > 1.) installing theserviceonto a new emulator ("adb shell dumpsys
> > > > > package" lists it then correctly)
>
> > > > > 2.) installing/running project 1 (leads to the error message above)
>
> > > > > 3.) now "adb shell dumpsys package" does not list theserviceanymore.
> > > > > even if i reinstall it, it won't be listed anymore until I start a new
> > > > > emulator and intall it freshly.
>
> > > > > I really do not know, how to deal with this and would be really
> > > > > thankful for any help!!
>
> > > > > best regards!
>
> > > > > On 17 Mai, 08:25, Dianne Hackborn <hack...@android.com> wrote:
> > > > > > For the secondquestion, you'll either want to define an abstract
> > > action
> > > > > in
> > > > > > an intent-filter for theserviceand use that as the intent you bind
> > > to
> > > > > > (typically the action is the name of the desired interface for
> > > binding to
> > > > > > services), or create an explicit ComponentName with the package name
> > > +
> > > > > class
> > > > > > name of theservicebeing bound to and provide that to the Intent.
> > >  For
> > > > > this
> > > > > > latter, make sure you have set android:exported="true" for the
> > >service.
>
> > > > > > Sorry I can't really help you with the firstquestion, since I don't
> > > know
> > > > > > ADT that well.  Basically you will need to have both applications
> > > like
> > > > > the
> > > > > > generatedaidlcode into their app.
>
> > > > > > On Sat, May 16, 2009 at 8:46 AM, dev_rob <robwiene...@googlemail.com
>
> > > > > wrote:
>
> > > > > > > Hi android developers,
>
> > > > > > > I'm new to the great android platform, trying to get into RPC with
> > > > > > >aidland services.
>
> > > > > > > I didn't find a sufficient answer to my problem in any posts, if
> > > there
> > > > > > > already is one, please excuse and point me to it, thanks.
>
> > > > > > > I made 2 projects.
>
> > > > > > > project 1 hast an activity that binds to aservicefrom project 2
> > > on a
> > > > > > > button click (all just for testing).
>
> > > > > > > 1. issue:
>
> > > > > > > How can I make project 1 know (import) my TestInterface (from
> > > > > > > TestInterface.aidlout of project 2) for usage in:
>
> > > > > > > "TestInterface mService = (TestInterface)
> > > > > > > TestInterface.Stub.asInterface(service);"
>
> > > > > > > without adding project 2 to the build path, because if I'd have an
> > > > > > > installedservicewithout the project code, I couldn't do it this
> > > way,
> > > > > > > too...??
> > > > > > > I read in one thread that TestInterface.aidlshould just be added
> > > to
> > > > > > > project 1, too, but if I do this, in DDMS enforceInterface()
> > > complains
> > > > > > > and seems to just see/use the interface from project 1 and it
> > > doesn't
> > > > > > > work.
>
> > > > > > > 2. issue:
>
> > > > > > > (here i add project 2 to project 1's build path, which i still
> > > think
> > > > > > > is not how it should work)
>
> > > > > > > If i bind to a systemservice, i can simply do something like
>
> > > > > > > bindService(new Intent(com.android.A_SERVICE);
>
> > > > > > > but if i have my ownservicein project 2, something like
>
> > > > > > > bindService(new Intent(com.project2.A_SERVICE);
>
> > > > > > > does not work (of course,service2 is installed on the emulator at
> > > > > > > that point, i provide an intent-filter an set the
> > > "android:exported"-
> > > > > > > attribute to true). the error i get is:
>
> > > > > > > "05-16 15:06:06.384: ERROR/dalvikvm(820): Could not find method
> > > > > > > de.roberlin.new_rpc.TestInterface$Stub.asInterface, referenced 
> > > > > > > from
> > > > > > > method de.roberlin.new_rpc.New_RPC_Client$2.onServiceConnected
>
> ...
>
> Erfahren Sie mehr »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to