Hi, is it possible somehow to bind to private system services? What I want to do is listen to the activitymanagerservice and be notified when other activites are started. I tried implementing the IActivityController.aidl from the Sourcecode. It has methods like activityStarting and activityResuming but this didn't really work. (I used the idea from here: http://blog.codetastrophe.com/2008/12/accessing-hidden-system-service-apis-in.html , problem is there is no proper private field one could use at least c.getDeclaredFields() doesn't return anything useful from the activity manager)
Any ideas how I can get notified of things going on in the Activity Manager without having to do a getRunningTasks all the time? Because this is the only workaround I came up with but it slows down the phone. Every help is appreciated. Many Thanks, Chris ##IActivityController.aidl: /* ** ** Copyright 2009, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ package android.app; import android.content.Intent; import android.app.IActivityWatcher; /** * Testing interface to monitor what is happening in the activity manager * while tests are running. Not for normal application development. * {...@hide} */ interface IActivityController { /** * The system is trying to start an activity. Return true to allow * it to be started as normal, or false to cancel/reject this activity. */ boolean activityStarting(in Intent intent, String pkg); /** * The system is trying to return to an activity. Return true to allow * it to be resumed as normal, or false to cancel/reject this activity. */ boolean activityResuming(String pkg); /** * An application process has crashed (in Java). Return true for the * normal error recovery (app crash dialog) to occur, false to kill * it immediately. */ boolean appCrashed(String processName, int pid, String shortMsg, String longMsg, in byte[] crashData); /** * An application process is not responding. Return 0 to show the "app * not responding" dialog, 1 to continue waiting, or -1 to kill it * immediately. */ int appNotResponding(String processName, int pid, String processStats); /** * Often you want to allow a service to call back to its clients. * This shows how to do so, by registering a callback interface with * the service. */ void registerActivityWatcher(IActivityWatcher watcher); /** * Remove a previously registered callback interface. */ void unregisterActivityWatcher(IActivityWatcher watcher); } -- 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