Mark A. Peters wrote:
> I wrote code to beam an application, and figured that simply setting the
> goToCreator field to the app's creator ID in the Exchange Manager socket
for
> the beam would make this happen.  I was wrong though - the application was
> never sent the goto launch code.

Which app is receiving the beam? Since your app isn't on the receiving
device, it must be Launcher. So your code isn't involved. The only part of
your code that gets executed on the receiving device is the syncNotify
handler. This launch code doesn't have access to the socket, so it can't set
the goto info.

Max Bian wrote:
> The common way is to set an alarm upon
> getting the SyncNotify launch code.

Exactly.

> I don't see a way from the application's point of view that it can tell
the
> difference of being beamed or being installed.

This is the key. If your app is doing the beaming, then it can change the
app "on the way out". It doesn't really matter how it changes the app, just
so long as the syncNotify handler can detect the change and behave
differently. We used this technique for Cambio. Specifically, we set the
hidden attribute on the app as it went through ExgDBWrite. We did this by
counting bytes passing through the callback function.

You could modify the app "in place", beam it normally, and then restore the
app. I don't like this solution for several reasons. If the device is reset
during the beam, the app will need to restore itself. Also, it doesn't work
if the app is in ROM.

Note that the app won't auto-launch if it's beamed via Launcher; it must be
beamed by the app itself.

This is all great fun, but you should ask yourself whether you want to
auto-launch your app after it's beamed. For Cambio this is appropriate
because the two devices need to swap app lists. I wouldn't recommend
auto-launching apps as a general rule though.
--
Danny @ PalmSource

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/

Reply via email to