【Android】屏蔽掉 SystemUI 的通知提示音


活动地址:CSDN21天学习挑战赛

1、屏蔽掉 SystemUI 的通知提示音

在9.0 以前的设备中,安装未来来源的权限开关 可以在SettingsProvider.app中的DateHelper.java中通过一个config.xml中的 开关打开 就可以了 但是9.0以后 就不行了需要在AppOpsManager.java中给与权限。

2、代码

  protected void onCreate(Bundle icicle) {
      getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
 
      ......
      checkIfAllowedAndInitiateInstall();
     // 安装前检查是否有权限
  }
  private void checkIfAllowedAndInitiateInstall() {
       .....
      if (mAllowUnknownSources || !isInstallRequestFromUnknownSource(getIntent())) {
        initiateInstall();
      } else {
           .....
          } else {
            // 检查如果未知来源进入
              handleUnknownSources();
          }
      }
  }
  private void handleUnknownSources() {
    if (mOriginatingPackage == null) {
        Log.i(TAG, "No source found for package " + mPkgInfo.packageName);
        showDialogInner(DLG_ANONYMOUS_SOURCE);
        return;
    }
。。。。。
}
 
 /**
 * Create a new dialog.
 *
 * @param id The id of the dialog (determines dialog type)
 *
 * @return The dialog
 */
private DialogFragment createDialog(int id) {
    switch (id) {
        case DLG_PACKAGE_ERROR:
            return SimpleErrorDialog.newInstance(R.string.Parse_error_dlg_text);
       //省略一堆代码
        case DLG_EXTERNAL_SOURCE_BLOCKED:
            return ExternalSourcesBlockedDialog.newInstance(mOriginatingPackage);
        case DLG_ANONYMOUS_SOURCE:
                   return AnonymousSourceDialog.newInstance();
		     break;
    }
    return null;
}
 
             case DLG_ANONYMOUS_SOURCE:
                //去掉弹出AnonymousSourceDialog对话框 默认安装
-                return AnonymousSourceDialog.newInstance();
+                mAllowUnknownSources = true;
+                 initiateInstall();
+                            break;
+                //return AnonymousSourceDialog.newInstance();
         }
         return null;
     }

你可能感兴趣的:(Android,android,java,jvm)