android插入外部USB(OTG)时去掉 外部存储更改提示框,默认走确定逻辑

13 篇文章 1 订阅
12 篇文章 0 订阅

1.通过提示框可以找到提示框定义的地方在 : vender/mediatek/proprietary/frameworks/base/storage/java/com/mediatek/strorage/StrorageDefaultPathDialog.java 内

2.查看提示框的创建代码

private void createDialog() {
        final AlertController.AlertParams p = mAlertParams;
        p.mTitle = mInsertOtg ? getString(com.mediatek.internal.R.string.usb_storage_ready_title) : 
                getString(com.mediatek.internal.R.string.sdcard_ready_title);
        p.mView = createView();
        p.mViewSpacingSpecified=true;
        p.mViewSpacingLeft=15;
        p.mViewSpacingRight=15;
        p.mViewSpacingTop=5;
        p.mViewSpacingBottom=5;
        p.mPositiveButtonText = getString(android.R.string.yes);
        p.mPositiveButtonListener = this;
        p.mNegativeButtonText = getString(android.R.string.no);
        p.mNegativeButtonListener = this;
        setupAlert();
    }

3.上面的createDialog方法在onCreate里面回调,可以在上面的createDialog方法中看到代码中给OK和NO(cancel)按钮设置了点击事件,往下看点击事件走的逻辑

public void onClick(DialogInterface dialog, int which) {
        switch (which) {
            case DialogInterface.BUTTON_POSITIVE:
                onOK();
                break;
            case DialogInterface.BUTTON_NEGATIVE:
                onCancel();
                break;
        }
    }

4.可以看到点击OK和cancel按钮的时候分别执行的事件,这时候我们只需要默认走点击OK按键里面的逻辑

5.在onCreate里面把调用createDialog的方法注释掉,将onOK方法添加即可不弹提示框,默认走确认的逻辑

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG,"StorageDefaultPathDialog onCreate()");
        mSDCardStateFilter = new IntentFilter(SD_ACTION);
        mSDCardStateFilter.addDataScheme("file");
        mReceiver = mSDStateReceiver;
        mInsertOtg = getIntent().getBooleanExtra(INSERT_OTG, false);
        //createDialog();注释掉
        onOK();//调用onOK方法
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值