Add support for launching activities when attaching to a car or desk dock.
Categories CATEGORY_CAR_DOCK and CATEGORY_DESK_DOCK can be assigned to activities to make them launchable on docked events. This is a better mechanism than listening for ACTION_DOCK_EVENT with a broadcast receiver. Change-Id: Ic5f3ab3555ce02ca922bc31ebba41978cefe8bda Signed-off-by: Mike Lockwood <lockwood@android.com>
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.server;
|
||||
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Handler;
|
||||
@@ -111,6 +112,30 @@ class DockObserver extends UEventObserver {
|
||||
Intent intent = new Intent(Intent.ACTION_DOCK_EVENT);
|
||||
intent.putExtra(Intent.EXTRA_DOCK_STATE, mDockState);
|
||||
mContext.sendStickyBroadcast(intent);
|
||||
|
||||
// Launch a dock activity
|
||||
String category;
|
||||
switch (mDockState) {
|
||||
case Intent.EXTRA_DOCK_STATE_CAR:
|
||||
category = Intent.CATEGORY_CAR_DOCK;
|
||||
break;
|
||||
case Intent.EXTRA_DOCK_STATE_DESK:
|
||||
category = Intent.CATEGORY_DESK_DOCK;
|
||||
break;
|
||||
default:
|
||||
category = null;
|
||||
break;
|
||||
}
|
||||
if (category != null) {
|
||||
intent = new Intent(Intent.ACTION_MAIN);
|
||||
intent.addCategory(category);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
try {
|
||||
mContext.startActivity(intent);
|
||||
} catch (ActivityNotFoundException e) {
|
||||
Log.w(TAG, e.getCause());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user