各位大师谁告诉一下adb打开系统相册/视频的命令,非常感谢,不胜感激
private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (DEBUG) Log.v(TAG, "onReceive: " + intent);
String action = intent.getAction();
if (ACTION_SHOW_HOME_BUTTON.equals(action)) {
getHomeButton().setVisibility(View.VISIBLE);
}
else if(ACTION_HIDE_HOME_BUTTON.equals(action)){
getHomeButton().setVisibility(View.GONE);
}
else if(ACTION_SHOW_BACK_BUTTON.equals(action)){
getBackButton().setVisibility(View.VISIBLE);
}
else if(ACTION_HIDE_BACK_BUTTON.equals(action)){
getBackButton().setVisibility(View.GONE);
}
else if(ACTION_SHOW_RECENTS_BUTTON.equals(action)){
getRecentsButton().setVisibility(View.VISIBLE);
}
else if(ACTION_HIDE_RECENTS_BUTTON.equals(action)){
getRecentsButton().setVisibility(View.GONE);
}
}
};
上面的广播接收者就做了对按键的显示与隐藏(setVisibility()方法),这里为什么是getXXXButton(),找到方法就知道了
以home键为例,想在细点的可以找对应的资源id拿到布局去验证。
public ButtonDispatcher getHomeButton() {
return mButtonDispatchers.get(R.id.home);
}
可以看到广播接受者需要action作为过滤条件,触发不同的时间,这里有多个action,就需要一个IntentFilter,这里我们用一个方法去做这些事情
@VisibleForTesting
protected void registerBroadcastReceiver() {
IntentFilter filter = new IntentFilter();
filter.addAction(ACTION_SHOW_HOME_BUTTON);
filter.addAction(ACTION_HIDE_HOME_BUTTON);
filter.addAction(ACTION_SHOW_BACK_BUTTON);
filter.addAction(ACTION_HIDE_BACK_BUTTON);
filter.addAction(ACTION_SHOW_RECENTS_BUTTON);
filter.addAction(ACTION_HIDE_RECENTS_BUTTON);
mContext.registerReceiver(mBroadcastReceiver, filter);
}
这个方法就添加了对应的action,这些action需要定义成全局变量方便使用
private static final String ACTION_SHOW_HOME_BUTTON = "home_button_is_show";
private static final String ACTION_HIDE_HOME_BUTTON = "home_button_is_hide";
private static final String ACTION_SHOW_BACK_BUTTON = "back_button_is_show";
private static final String ACTION_HIDE_BACK_BUTTON = "back_button_is_hide";
private static final String ACTION_SHOW_RECENTS_BUTTON = "recents_button_is_show";
private static final String ACTION_HIDE_RECENTS_BUTTON = "recents_button_is_hide";
最后,也是最重要的,要在构造方法中调用我们的registerBroadcastReceiver() 方法
// receive broadcasts
registerBroadcastReceiver();
注意一定要在这个类的构造方法中加,才能起作用。
android.intent.action.OPEN_DOCUMENT
android.intent.action.PICK
打开系统相册:
adb shell am start -t "image/*" -a android.intent.action.VIEW
打开系统视频:
adb shell am start -t "video/*" -a android.intent.action.VIEW