Search in sources :

Example 96 with ServiceConnection

use of android.content.ServiceConnection in project ABPlayer by winkstu.

the class BiliVideoViewActivity method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    if (!io.vov.vitamio.LibsChecker.checkVitamioLibs(this))
        return;
    vPlayerServiceConnection = new ServiceConnection() {

        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            vPlayer = ((PlayerService.LocalBinder) service).getService();
            mServiceConnected = true;
            if (mSurfaceCreated)
                vPlayerHandler.sendEmptyMessage(OPEN_FILE);
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
            vPlayer = null;
            mServiceConnected = false;
        }
    };
    setVolumeControlStream(AudioManager.STREAM_MUSIC);
    parseIntent(getIntent());
    loadView(R.layout.activity_video);
    manageReceivers();
    findViews();
    mCreated = true;
    startText = startText + "【完成】\n解析视频地址...【完成】\n全舰弹幕填装...";
    startVideoInfo.setText(startText);
    new VideoViewInitTask().execute();
}
Also used : ServiceConnection(android.content.ServiceConnection) IBinder(android.os.IBinder) ComponentName(android.content.ComponentName)

Example 97 with ServiceConnection

use of android.content.ServiceConnection in project ABPlayer by winkstu.

the class VideoViewActivity method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    if (!io.vov.vitamio.LibsChecker.checkVitamioLibs(this))
        return;
    vPlayerServiceConnection = new ServiceConnection() {

        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            vPlayer = ((PlayerService.LocalBinder) service).getService();
            mServiceConnected = true;
            if (mSurfaceCreated)
                vPlayerHandler.sendEmptyMessage(OPEN_FILE);
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
            vPlayer = null;
            mServiceConnected = false;
        }
    };
    setVolumeControlStream(AudioManager.STREAM_MUSIC);
    parseIntent(getIntent());
    loadView(R.layout.activity_video);
    manageReceivers();
    mCreated = true;
}
Also used : ServiceConnection(android.content.ServiceConnection) IBinder(android.os.IBinder) ComponentName(android.content.ComponentName)

Example 98 with ServiceConnection

use of android.content.ServiceConnection in project android_frameworks_base by DirtyUnicorns.

the class LocalReceiver method onReceive.

public void onReceive(Context context, Intent intent) {
    String resultString = LaunchpadActivity.RECEIVER_LOCAL;
    if (BroadcastTest.BROADCAST_FAIL_REGISTER.equals(intent.getAction())) {
        resultString = "Successfully registered, but expected it to fail";
        try {
            context.registerReceiver(this, new IntentFilter("foo.bar"));
            context.unregisterReceiver(this);
        } catch (ReceiverCallNotAllowedException e) {
            //resultString = "This is the correct behavior but not yet implemented";
            resultString = LaunchpadActivity.RECEIVER_LOCAL;
        }
    } else if (BroadcastTest.BROADCAST_FAIL_BIND.equals(intent.getAction())) {
        resultString = "Successfully bound to service, but expected it to fail";
        try {
            ServiceConnection sc = new ServiceConnection() {

                public void onServiceConnected(ComponentName name, IBinder service) {
                }

                public void onServiceDisconnected(ComponentName name) {
                }
            };
            context.bindService(new Intent(context, LocalService.class), sc, 0);
            context.unbindService(sc);
        } catch (ReceiverCallNotAllowedException e) {
            //resultString = "This is the correct behavior but not yet implemented";
            resultString = LaunchpadActivity.RECEIVER_LOCAL;
        }
    } else if (LaunchpadActivity.BROADCAST_REPEAT.equals(intent.getAction())) {
        Intent newIntent = new Intent(intent);
        newIntent.setAction(LaunchpadActivity.BROADCAST_LOCAL);
        context.sendOrderedBroadcast(newIntent, null);
    }
    try {
        IBinder caller = intent.getIBinderExtra("caller");
        Parcel data = Parcel.obtain();
        data.writeInterfaceToken(LaunchpadActivity.LAUNCH);
        data.writeString(resultString);
        caller.transact(LaunchpadActivity.GOT_RECEIVE_TRANSACTION, data, null, 0);
        data.recycle();
    } catch (RemoteException ex) {
    }
}
Also used : ReceiverCallNotAllowedException(android.content.ReceiverCallNotAllowedException) IntentFilter(android.content.IntentFilter) ServiceConnection(android.content.ServiceConnection) IBinder(android.os.IBinder) Parcel(android.os.Parcel) ComponentName(android.content.ComponentName) Intent(android.content.Intent) RemoteException(android.os.RemoteException)

Example 99 with ServiceConnection

use of android.content.ServiceConnection in project android_frameworks_base by DirtyUnicorns.

the class KeyChain method bindAsUser.

/**
     * @hide
     */
@WorkerThread
public static KeyChainConnection bindAsUser(@NonNull Context context, UserHandle user) throws InterruptedException {
    if (context == null) {
        throw new NullPointerException("context == null");
    }
    ensureNotOnMainThread(context);
    final BlockingQueue<IKeyChainService> q = new LinkedBlockingQueue<IKeyChainService>(1);
    ServiceConnection keyChainServiceConnection = new ServiceConnection() {

        volatile boolean mConnectedAtLeastOnce = false;

        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            if (!mConnectedAtLeastOnce) {
                mConnectedAtLeastOnce = true;
                try {
                    q.put(IKeyChainService.Stub.asInterface(service));
                } catch (InterruptedException e) {
                // will never happen, since the queue starts with one available slot
                }
            }
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
        }
    };
    Intent intent = new Intent(IKeyChainService.class.getName());
    ComponentName comp = intent.resolveSystemService(context.getPackageManager(), 0);
    intent.setComponent(comp);
    if (comp == null || !context.bindServiceAsUser(intent, keyChainServiceConnection, Context.BIND_AUTO_CREATE, user)) {
        throw new AssertionError("could not bind to KeyChainService");
    }
    return new KeyChainConnection(context, keyChainServiceConnection, q.take());
}
Also used : ServiceConnection(android.content.ServiceConnection) IBinder(android.os.IBinder) ComponentName(android.content.ComponentName) Intent(android.content.Intent) PendingIntent(android.app.PendingIntent) LinkedBlockingQueue(java.util.concurrent.LinkedBlockingQueue) WorkerThread(android.annotation.WorkerThread)

Example 100 with ServiceConnection

use of android.content.ServiceConnection in project android_frameworks_base by DirtyUnicorns.

the class MediaBrowser method connect.

/**
     * Connects to the media browse service.
     * <p>
     * The connection callback specified in the constructor will be invoked
     * when the connection completes or fails.
     * </p>
     */
public void connect() {
    if (mState != CONNECT_STATE_DISCONNECTED) {
        throw new IllegalStateException("connect() called while not disconnected (state=" + getStateLabel(mState) + ")");
    }
    // TODO: remove this extra check.
    if (DBG) {
        if (mServiceConnection != null) {
            throw new RuntimeException("mServiceConnection should be null. Instead it is " + mServiceConnection);
        }
    }
    if (mServiceBinder != null) {
        throw new RuntimeException("mServiceBinder should be null. Instead it is " + mServiceBinder);
    }
    if (mServiceCallbacks != null) {
        throw new RuntimeException("mServiceCallbacks should be null. Instead it is " + mServiceCallbacks);
    }
    mState = CONNECT_STATE_CONNECTING;
    final Intent intent = new Intent(MediaBrowserService.SERVICE_INTERFACE);
    intent.setComponent(mServiceComponent);
    final ServiceConnection thisConnection = mServiceConnection = new MediaServiceConnection();
    boolean bound = false;
    try {
        bound = mContext.bindService(intent, mServiceConnection, Context.BIND_AUTO_CREATE);
    } catch (Exception ex) {
        Log.e(TAG, "Failed binding to service " + mServiceComponent);
    }
    if (!bound) {
        // Tell them that it didn't work. We are already on the main thread,
        // but we don't want to do callbacks inside of connect(). So post it,
        // and then check that we are on the same ServiceConnection. We know
        // we won't also get an onServiceConnected or onServiceDisconnected,
        // so we won't be doing double callbacks.
        mHandler.post(new Runnable() {

            @Override
            public void run() {
                // Ensure that nobody else came in or tried to connect again.
                if (thisConnection == mServiceConnection) {
                    forceCloseConnection();
                    mCallback.onConnectionFailed();
                }
            }
        });
    }
    if (DBG) {
        Log.d(TAG, "connect...");
        dump();
    }
}
Also used : ServiceConnection(android.content.ServiceConnection) Intent(android.content.Intent) RemoteException(android.os.RemoteException)

Aggregations

ServiceConnection (android.content.ServiceConnection)122 ComponentName (android.content.ComponentName)95 Intent (android.content.Intent)95 IBinder (android.os.IBinder)94 RemoteException (android.os.RemoteException)75 PendingIntent (android.app.PendingIntent)46 UserHandle (android.os.UserHandle)23 Handler (android.os.Handler)20 Message (android.os.Message)19 Messenger (android.os.Messenger)19 IRemoteViewsFactory (com.android.internal.widget.IRemoteViewsFactory)12 IInterface (android.os.IInterface)9 ResolveInfo (android.content.pm.ResolveInfo)8 IntentFilter (android.content.IntentFilter)7 Point (android.graphics.Point)7 AndroidRuntimeException (android.util.AndroidRuntimeException)7 LinkedBlockingQueue (java.util.concurrent.LinkedBlockingQueue)7 Test (org.junit.Test)7 FilterComparison (android.content.Intent.FilterComparison)6 ReceiverCallNotAllowedException (android.content.ReceiverCallNotAllowedException)6