Android 判断当前手机中是否存在某一个action可以启动。

有的时候需要在某个程序里面由特定的条件跳转到设置或者其他的应用界面。我们一般采用的是根据某个特定的ACTIONT跳转到设置中去的。



首先是判断我们的手机中是否存在我们要的这个actyion.

        private boolean isActionSupport(Context context,String action){
            final PackageManager packageManager = context.getPackageManager();
            final Intent intent = new Intent(action);
            List<ResolveInfo> resolveInfo =
                    packageManager.queryIntentActivities(intent,
                            PackageManager.MATCH_DEFAULT_ONLY);
            if (resolveInfo.size() > 0) {
                return true;
            }
            return false;
        }



然后在需要跳转的地方加上你的action后startActivity.

        private void XXXSetting(){
            if(isActionSupport(mContext,XXX_ACTION)) {
                Intent intent= new Intent();
                intent.setAction(XXX_ACTION);
                mContext.startActivity(intent);
            }
        }


Android系统启动过程,通常不会直接检查某个应用是否作为当前输入法。因为这是用户界面层的操作,是在应用程序运行时通过InputMethodManager来进行管理的。当需要切换输入法时,例如按下硬件键盘上的IME (Input Method Editor) 按钮,系统会通知已安装的输入法服务。 然而,如果你是一个应用开发者,并希望避免自己的应用在启动时触发输入法,可以这样做: 1. **监听系统广播**:当用户从其他应用切换到键盘时,会发送一个ACTION_INPUT_METHOD_CHANGED的系统广播。你可以注册BroadcastReceiver来处理这个事件,判断当前焦点应用是否是你的应用。 ```java IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_INPUT_METHOD_CHANGED); registerReceiver(inputMethodReceiver, filter); // 在 BroadcastReceiver 处理该意图 private BroadcastReceiver inputMethodReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String currentPackage = InputMethodManager.getInstance(context) .getCurrentInputMethodSubtypeId() != null ? InputMethodManager.getCurrentInputMethodSubtype(context).getPackageName() : ""; if (!currentPackage.equals(yourAppPackageName)) { // 你的应用不是当前输入法,这里做相应操作 } } }; ``` 2. **手动设置**:如果你的应用不需要成为默认输入法,可以在manifest文件指定`<activity>`标签的`android:windowSoftInputMode`属性,避免自动全屏显示。 ```xml <activity android:name=".YourActivity" android:windowSoftInputMode="adjustPan" /> ``` 在这个例子,`adjustPan`会让软键盘覆盖部分内容而不是全屏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值