Settings的应用列表中不显示某个应用

  • 需求:设置的应用列表中不显示某个应用
  • 源码路径:packages/apps/Settings/src/com/android/settings/applications/ManageApplications.java
 public void rebuild(boolean eraseold) {
        // 省略部分代码
    ArrayList<ApplicationsState.AppEntry> entries = mSession.rebuild(filterObj, comparatorObj);
    if (entries == null && !eraseold) {
        // Don't have new list yet, but can continue using the old one.
        return;
    }
    
    /*** add  for hide app in setting-apps ****/
    String marketName = SystemProperties.get("market.name");
    for (ApplicationsState.AppEntry appEntry : entries) {
         if (appEntry.info.packageName.equals(marketName)) {
             entries.remove(appEntry);
             break;
         } 
    }
    //end
    mBaseEntries = entries;
    if (mBaseEntries != null) {
        mEntries = applyPrefixFilter(mCurFilterPrefix, mBaseEntries);
    } else {
        mEntries = null;
    }
    notifyDataSetChanged();    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Android系统提供的AlertDialog或PopupWindow来实现在您的应用程序显示弹出窗口。 如果您想要显示另一个应用程序的弹出窗口,则需要使用Android的权限机制来获取SYSTEM_ALERT_WINDOW权限。 在您的应用程序的AndroidManifest.xml文件添加以下权限: ``` <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> ``` 然后,您可以使用以下代码在您的应用程序显示系统弹窗: ``` //创建一个Intent对象,用于启动要显示弹出窗口的应用程序 Intent intent = new Intent(Intent.ACTION_MAIN); intent.setClassName("com.example.app", "com.example.app.MainActivity"); //检查是否拥有SYSTEM_ALERT_WINDOW权限 if (Settings.canDrawOverlays(context)) { //创建一个WindowManager.LayoutParams对象,用于定义弹出窗口的属性 WindowManager.LayoutParams params = new WindowManager.LayoutParams( WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSLUCENT); params.gravity = Gravity.CENTER; //使用WindowManager.addView()方法将弹出窗口添加到屏幕上 WindowManager windowManager = (WindowManager) context.getSystemService(WINDOW_SERVICE); View view = LayoutInflater.from(context).inflate(R.layout.popup_layout, null); windowManager.addView(view, params); } else { //如果没有SYSTEM_ALERT_WINDOW权限,则启动系统设置页面以请求该权限 Intent permissionIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + context.getPackageName())); context.startActivity(permissionIntent); } ``` 在上面的代码,我们创建了一个Intent对象,用于启动要显示弹出窗口的应用程序。 然后,我们检查是否拥有SYSTEM_ALERT_WINDOW权限。 如果我们有这个权限,我们就创建一个WindowManager.LayoutParams对象,来定义弹出窗口的属性,然后使用WindowManager.addView()方法将弹出窗口添加到屏幕上。 如果我们没有这个权限,我们就启动系统设置页面以请求该权限。 需要注意的是,对于Android 6.0及以上的版本,用户必须手动授予SYSTEM_ALERT_WINDOW权限,否则无法显示弹出窗口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值