Correct you can't do this, very much by design.

On Fri, Mar 11, 2011 at 7:05 AM, Justin Anderson <[email protected]>wrote:

> AFAIK that is not possible... I don't think you can redirect events to
> other activities that you don't control.  That would be a big security risk.
>
> Thanks,
> Justin Anderson
> MagouyaWare Developer
> http://sites.google.com/site/magouyaware
>
>
>
> On Fri, Mar 11, 2011 at 3:44 AM, praveen kumar <
> [email protected]> wrote:
>
>> Hi,
>> I want to override the back key of the Android device to display a
>> dialog,
>> which consists of two buttons say "Back" and "Exit". when you press
>> the Back button
>> in dialog it should dispatch back key to the top activity which is
>> currently running, i can able to get
>> system context by adding following code snippet to
>> <android_source_directory>frameworks/
>> base/services/java/com/android/server/WindowManagerService.java.
>>
>> ActivityThread at = ActivityThread.currentActivityThread();
>>        if (at == null) {
>>            Looper.prepare();
>>            at = ActivityThread.systemMain();
>>        }
>>        if(at != null){
>>            sysContext = at.getSystemContext();
>>            Log.d(TAG, "SystemContext = " + sysContext);
>>        }
>>
>> to display the dialog i added following code
>> Dialog dialog = new Dialog(myContext);
>> dialog.setContentView(com.android.internal.R.layout.<my-layout-name>);
>> dialog.setTitle("Custom Dialog");
>> dialog.show();
>>
>>
>> Using sysContext, I can able to display toast, and I can able to
>> launch the activity, but
>> when i try to display a dialog using the same sysContext i got the
>> error saying,
>> unable to add window "window token is null" it would be great if you
>> give any input
>> why it is not able to display dialog using sysConttext?
>>
>> i added the following code, snippet to get top activity pid
>>
>> am = (ActivityManager)
>> myContext.getSystemService(Activity.ACTIVITY_SERVICE);
>> currentPackageName =
>> am.getRunningTasks(1).get(0).topActivity.getPackageName();
>>
>> List<ActivityManager.RunningAppProcessInfo> processes;
>> processes = am.getRunningAppProcesses();
>> for(ActivityManager.RunningAppProcessInfo info: processes) {
>>        Log.i("Process:", info.processName);
>>        if(currentPackageName.equalsIgnoreCase(info.processName)){
>>           Log.i(TAG, "Found !");
>>           mpid = info.pid; //pid of top Activity
>>           muid = 0; // will be always 0
>>         }
>> }
>>
>> private Handler msgHandler = new Handler(){
>>     //this method will handle the calls from other threads.
>>    public void handleMessage(Message msg) {
>>        int result = -1;
>>        switch (msg.what) {
>>            case TPMUHelper.DISPATCH_BACK_KEY:
>>                Log.d(TAG, "Dispatching Back_Key");
>>                code = KeyEvent.KEYCODE_BACK;
>>                KeyEvent backEvent = new KeyEvent(downTime,
>> eventTime,
>> action, code, repeatCount, metaState,
>>                deviceId, scancode, KeyEvent.FLAG_FROM_SYSTEM);
>>                Log.i(TAG, "PID = " + mpid + ", UID = " +muid);
>>                result = dispatchKey(backEvent, mpid, muid);
>>                Log.d(TAG, "Dispatch Key Returns = " + result);
>>            break;
>>      }
>>  }
>> };
>>
>> When i send "DISPATCH_BACK_KEY" message from my-activity "Back" button
>> press event, it comes here
>> and dispatch back key, dispatchkey(KeyEvent event, int pid, int uid)
>> returns '1', i am success with
>> this, however currently running activity is not getting closed. simply
>> what i need is, i want to
>> send back key to whichever the activity is currently running, (system
>> application or 3rd party
>> application). input regarding the same is appreciated.
>>
>> Thanks & Regards
>> Praveen
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Android Developers" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/android-developers?hl=en
>>
>
>  --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>



-- 
Dianne Hackborn
Android framework engineer
[email protected]

Note: please don't send private questions to me, as I don't have time to
provide private support, and so won't reply to such e-mails.  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 Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to