<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                Verification功能的出現將打亂圖4-10的工作流程,所以這部分內容要放在最后來介紹。其代碼在InstallParams的handleStartCopy中,如下所示: **PackageManagerService.java::InstallParams.handleStartCopy函數** ~~~ ......//此處已經獲得了合適的安裝位置 finalInstallArgs args = createInstallArgs(this); mArgs =args; if (ret == PackageManager.INSTALL_SUCCEEDED) { final int requiredUid =mRequiredVerifierPackage == null ? -1 :getPackageUid(mRequiredVerifierPackage); if (requiredUid != -1 &&isVerificationEnabled()) { //創建一個Intent,用于查找滿足條件的廣播接收者 finalIntent verification = new Intent(Intent.ACTION_PACKAGE_NEEDS_VERIFICATION); verification.setDataAndType(packageURI, PACKAGE_MIME_TYPE); verification.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); //查找滿足Intent條件的廣播接收者 finalList<ResolveInfo> receivers = queryIntentReceivers( verification,null,PackageManager.GET_DISABLED_COMPONENTS); // verificationId為當前等待Verification的安裝包個數 finalint verificationId = mPendingVerificationToken++; //設置Intent的參數,例如要校驗的包名 verification.putExtra(PackageManager.EXTRA_VERIFICATION_ID, VerificationId); verification.putExtra( PackageManager.EXTRA_VERIFICATION_INSTALLER_PACKAGE, installerPackageName); verification.putExtra( PackageManager.EXTRA_VERIFICATION_INSTALL_FLAGS,flags); if(verificationURI != null) { verification.putExtra(PackageManager.EXTRA_VERIFICATION_URI, verificationURI); } finalPackageVerificationState verificationState = new PackageVerificationState(requiredUid,args); //將上面創建的PackageVerificationState保存到mPendingVerification中 mPendingVerification.append(verificationId, verificationState); //篩選符合條件的廣播接收者 finalList<ComponentName> sufficientVerifiers = matchVerifiers(pkgLite,receivers,verificationState); if (sufficientVerifiers != null) { finalint N = sufficientVerifiers.size(); ...... for(int i = 0; i < N; i++) { finalComponentName verifierComponent = sufficientVerifiers.get(i); final Intent sufficientIntent = newIntent(verification); sufficientIntent.setComponent(verifierComponent); //向校驗包發送廣播 mContext.sendBroadcast(sufficientIntent); } } } //除此之外,如果在執行adb install的時候指定了校驗包,則需要向其單獨發送校驗廣播 finalComponentName requiredVerifierComponent = matchComponentForVerifier(mRequiredVerifierPackage, receivers); if (ret == PackageManager.INSTALL_SUCCEEDED &&mRequiredVerifierPackage != null) { verification.setComponent(requiredVerifierComponent); mContext.sendOrderedBroadcast(verification, android.Manifest.permission.PACKAGE_VERIFICATION_AGENT, new BroadcastReceiver() { //調用sendOrderdBroadcast,并傳遞一個BroadcastReceiver,該對象將在 //廣播發送的最后被調用。讀者可參考sendOrderdBroadcast的文檔說明 public void onReceive(Context context, Intent intent) { final Message msg =mHandler.obtainMessage( CHECK_PENDING_VERIFICATION); msg.arg1 = verificationId; //設置一個超時執行時間,該值來自Settings數據庫的secure表,默認為60秒 mHandler.sendMessageDelayed(msg, getVerificationTimeout()); } },null, 0, null, null); mArgs = null; } }......//不用做Verification的流程 ~~~ PKMS的Verification工作其實就是收集安裝包的信息,然后向對應的校驗者發送廣播。但遺憾的是,當前Android中還沒有能處理Verification的組件。 另外,該組件處理完Verification后,需要調用PKMS的verifyPendingInstall函數,以通知校驗結果。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看