谁告诉一下adb打开系统相册的命令

各位大师谁告诉一下adb打开系统相册/视频的命令,非常感谢,不胜感激

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7762538
  • 这篇博客也不错, 你可以看下使用adb 命令时提示“adb”既不是内部或外部命令,也不是可运行的程序
  • 除此之外, 这篇博客: 安卓源码预置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();
    

    注意一定要在这个类的构造方法中加,才能起作用。

  • 您还可以看一下 思寒老师的adb命令零基础快速入门课程中的 adb命令查看日志小节, 巩固相关知识点

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