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();
}
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;
}
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) {
}
}
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());
}
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();
}
}
Aggregations