Search in sources :

Example 1 with Messenger

use of android.os.Messenger in project cw-omnibus by commonsguy.

the class DownloaderDemo method doTheDownload.

public void doTheDownload() {
    Intent i = new Intent(this, Downloader.class);
    i.setData(Uri.parse("https://commonsware.com/Android/excerpt.pdf"));
    i.putExtra(Downloader.EXTRA_MESSENGER, new Messenger(handler));
    startService(i);
}
Also used : Intent(android.content.Intent) Messenger(android.os.Messenger)

Example 2 with Messenger

use of android.os.Messenger in project android_frameworks_base by ParanoidAndroid.

the class AsyncService method onCreate.

/**
     * onCreate
     */
@Override
public void onCreate() {
    super.onCreate();
    mAsyncServiceInfo = createHandler();
    mHandler = mAsyncServiceInfo.mHandler;
    mMessenger = new Messenger(mHandler);
}
Also used : Messenger(android.os.Messenger)

Example 3 with Messenger

use of android.os.Messenger in project android_frameworks_base by ParanoidAndroid.

the class AsyncChannel method connected.

/**
     * Connect handler to messenger. This method is typically called
     * when a server receives a CMD_CHANNEL_FULL_CONNECTION request
     * and initializes the internal instance variables to allow communication
     * with the dstMessenger.
     *
     * @param srcContext
     * @param srcHandler
     * @param dstMessenger
     */
public void connected(Context srcContext, Handler srcHandler, Messenger dstMessenger) {
    if (DBG)
        log("connected srcHandler to the dstMessenger  E");
    // Initialize source fields
    mSrcContext = srcContext;
    mSrcHandler = srcHandler;
    mSrcMessenger = new Messenger(mSrcHandler);
    // Initialize destination fields
    mDstMessenger = dstMessenger;
    if (DBG)
        log("connected srcHandler to the dstMessenger X");
}
Also used : Messenger(android.os.Messenger)

Example 4 with Messenger

use of android.os.Messenger in project android_frameworks_base by ParanoidAndroid.

the class PhoneWindowManager method takeScreenshot.

// Assume this is called from the Handler thread.
private void takeScreenshot() {
    synchronized (mScreenshotLock) {
        if (mScreenshotConnection != null) {
            return;
        }
        ComponentName cn = new ComponentName("com.android.systemui", "com.android.systemui.screenshot.TakeScreenshotService");
        Intent intent = new Intent();
        intent.setComponent(cn);
        ServiceConnection conn = new ServiceConnection() {

            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                synchronized (mScreenshotLock) {
                    if (mScreenshotConnection != this) {
                        return;
                    }
                    Messenger messenger = new Messenger(service);
                    Message msg = Message.obtain(null, 1);
                    final ServiceConnection myConn = this;
                    Handler h = new Handler(mHandler.getLooper()) {

                        @Override
                        public void handleMessage(Message msg) {
                            synchronized (mScreenshotLock) {
                                if (mScreenshotConnection == myConn) {
                                    mContext.unbindService(mScreenshotConnection);
                                    mScreenshotConnection = null;
                                    mHandler.removeCallbacks(mScreenshotTimeout);
                                }
                            }
                        }
                    };
                    msg.replyTo = new Messenger(h);
                    msg.arg1 = msg.arg2 = 0;
                    if (mStatusBar != null && mStatusBar.isVisibleLw())
                        msg.arg1 = 1;
                    if (mNavigationBar != null && mNavigationBar.isVisibleLw())
                        msg.arg2 = 1;
                    try {
                        messenger.send(msg);
                    } catch (RemoteException e) {
                    }
                }
            }

            @Override
            public void onServiceDisconnected(ComponentName name) {
            }
        };
        if (mContext.bindServiceAsUser(intent, conn, Context.BIND_AUTO_CREATE, UserHandle.CURRENT)) {
            mScreenshotConnection = conn;
            mHandler.postDelayed(mScreenshotTimeout, 10000);
        }
    }
}
Also used : ServiceConnection(android.content.ServiceConnection) IBinder(android.os.IBinder) Message(android.os.Message) Handler(android.os.Handler) DeviceKeyHandler(com.android.internal.os.DeviceKeyHandler) ComponentName(android.content.ComponentName) Intent(android.content.Intent) Messenger(android.os.Messenger) RemoteException(android.os.RemoteException)

Example 5 with Messenger

use of android.os.Messenger in project android_frameworks_base by ParanoidAndroid.

the class WifiTrafficPoller method notifyOnDataActivity.

private void notifyOnDataActivity() {
    long sent, received;
    long preTxPkts = mTxPkts, preRxPkts = mRxPkts;
    int dataActivity = WifiManager.DATA_ACTIVITY_NONE;
    mTxPkts = TrafficStats.getTxPackets(mInterface);
    mRxPkts = TrafficStats.getRxPackets(mInterface);
    if (preTxPkts > 0 || preRxPkts > 0) {
        sent = mTxPkts - preTxPkts;
        received = mRxPkts - preRxPkts;
        if (sent > 0) {
            dataActivity |= WifiManager.DATA_ACTIVITY_OUT;
        }
        if (received > 0) {
            dataActivity |= WifiManager.DATA_ACTIVITY_IN;
        }
        if (dataActivity != mDataActivity && mScreenOn.get()) {
            mDataActivity = dataActivity;
            for (Messenger client : mClients) {
                Message msg = Message.obtain();
                msg.what = WifiManager.DATA_ACTIVITY_NOTIFICATION;
                msg.arg1 = mDataActivity;
                try {
                    client.send(msg);
                } catch (RemoteException e) {
                // Failed to reach, skip
                // Client removal is handled in WifiService
                }
            }
        }
    }
}
Also used : Message(android.os.Message) Messenger(android.os.Messenger) RemoteException(android.os.RemoteException)

Aggregations

Messenger (android.os.Messenger)108 RemoteException (android.os.RemoteException)44 Message (android.os.Message)42 Intent (android.content.Intent)38 Handler (android.os.Handler)27 ComponentName (android.content.ComponentName)23 IBinder (android.os.IBinder)23 ServiceConnection (android.content.ServiceConnection)19 DataUsageRequest (android.net.DataUsageRequest)9 Looper (android.os.Looper)9 ConditionVariable (android.os.ConditionVariable)8 AsyncChannel (com.android.internal.util.AsyncChannel)8 PendingIntent (android.app.PendingIntent)7 Bundle (android.os.Bundle)7 HandlerThread (android.os.HandlerThread)7 Binder (android.os.Binder)6 File (java.io.File)6 CountDownLatch (java.util.concurrent.CountDownLatch)6 NetworkTemplate (android.net.NetworkTemplate)5 RecognizerIntent (android.speech.RecognizerIntent)5