導航:首頁 > 操作系統 > android屏蔽觸摸

android屏蔽觸摸

發布時間:2025-01-02 07:27:51

android 上如何關閉多點觸摸啊

AndroidManifest.xml中,在對應的activity中加入下面的樣式即可禁止當前頁面的多點觸摸,如果是整個應用都不需要的話,則直接在application中設置Theme即可。

<!-- 禁用多點觸控 -->
<style name="NoSplitTouch" parent="AppTheme">
<item name="android:windowEnableSplitTouch">false</item>
<item name="android:splitMotionEvents">false</item>
</style>

② android如何設置整個activity不可點擊不可獲得焦點

那你把可以點擊的和可以獲取焦點的,全都設置Enabled和Focusable屬性全為false假吧,或者在代碼里修改也行

③ Android 12 兼容之行為變更

Android 12 平台包含一些行為變更,這些變更可能會影響您的應用。以下行為變更將影響在 Android 12 上運行的 所有應用 ,無論採用哪種 targetSdkVersion 都不例外。您應該測試您的應用,然後根據需要進行修改,以適當地支持這些變更。

此外,請務必查看 僅影響以 Android 12 為目標平台的應用的行為變更 列表。

在搭載 Android 12 及更高版本的設備上, 滾動事件 的視覺行為發生了變化。

在 Android 11 及更低版本中,滾動事件會使視覺元素發光。在 Android 12 及更高版本中,發生拖動事件時,視覺元素會拉伸和反彈;發生快速滑動事件時,它們會快速滑動和反彈。

如需了解詳情,請參閱 動畫演示滾動手勢 指南。

如果您之前在 Android 11 或更低版本中實現了自定義啟動畫面,則需要將您的應用遷移到 SplashScreen API,以確保它從 Android 12 開始正確顯示。如果不遷移您的應用,則可能會導致應用啟動體驗變差或出乎預期。

如需了解相關說明,請參閱 將現有的啟動畫面實現遷移到 Android 12 。

此外,從 Android 12 開始,在所有應用的 冷啟動 和 溫啟動 期間,系統始終會應用新的 Android 系統默認啟動畫面 。 默認情況下,此系統默認啟動畫面由應用的啟動器圖標元素和主題的 windowBackground (如果是單色)構成。

如需了解詳情,請參閱 啟動畫面開發者指南 。

從 Android 12(API 級別 31)開始,僅當您的應用獲准處理某個通用網路 intent 中包含的特定網域時,該網路 intent 才會解析為應用中的 activity。如果您的應用未獲准處理相應的網域,則該網路 intent 會解析為用戶的默認瀏覽器應用。

應用可通過執行以下某項操作來獲准處理相應的網域:

如果您的應用調用網路 intent,不妨考慮添加一個提示或對話框,要求用戶確認操作。

Android 12 整合了現有行為,讓用戶可以 在沉浸模式下更輕松地執行手勢導航命令 。此外,Android 12 還為 粘性沉浸模式提供了向後兼容性行為 。

Android 設備有許多不同的外形規格,如大屏設備、平板電腦和可折疊設備。為了針對每種設備適當地呈現內容,您的應用需要確定屏幕或顯示屏尺寸。隨著時間的推移,Android 提供了不同的 API 來檢索這些信息。在 Android 11 中,我們引入了 WindowMetrics API 並廢棄了以下方法:

在 Android 12 中,我們繼續建議使用 WindowMetrics ,並且正在逐步廢棄以下方法:

為了緩解應用使用 Display API 檢索應用邊界的行為,Android 12 限制了 API 為不完全可調整大小的應用返回的值。這可能會對將此信息與 MediaProjection 一起使用的應用產生影響。

應用應使用 WindowMetrics API 查詢其窗口的邊界,並使用 Configuration.densityDpi 查詢當前的密度。

為了與較低的 Android 版本實現更廣泛的兼容性,您可以使用 Jetpack WindowManager 庫,它包含一個 WindowMetrics 類,該類支持 Android 4.0(API 級別 14)及更高版本。

首先,確保應用的 activity 完全可調整大小 。

activity 應依賴於來自 activity 上下文的 WindowMetrics 來執行任何與界面相關的工作,尤其是 WindowManager.getCurrentWindowMetrics() 或 Jetpack 的 WindowMetricsCalculator.computeCurrentWindowMetrics() 。

如果您的應用創建了 MediaProjection ,則必須正確地調整邊界的大小,因為投影會捕獲運行投影儀應用的顯示分區。

如果應用完全可調整大小,則 activity 上下文會返回正確的邊界,如下所示:

如果應用並非完全可調整大小,則它必須從 WindowContext 實例進行查詢,並使用 WindowManager.getMaximumWindowMetrics() 或 Jetpack 方法 WindowMetricsCalculator.computeMaximumWindowMetrics() 檢索 activity 邊界的 WindowMetrics 。

注意 :任何使用 MediaProjection 的庫也應遵循這些建議,並查詢相應的 WindowMetrics 。

Android 12 將多窗口模式作為標准行為。

在大屏設備 (sw >= 600dp) 中,所有應用都將在多窗口模式下運行,無論應用配置為何。如果 resizeableActivity="false" ,應用會在必要時進入兼容模式,以適應顯示屏尺寸。

在小屏設備 (sw < 600dp) 中,系統會檢查 activity 的 minWidth 和 minHeight ,來確定 activity 能否在多窗口模式下運行。如果 resizeableActivity="false" ,則無論最小寬度和高度如何,應用都無法在多窗口模式下運行。

如需了解詳情,請參閱 多窗口模式支持 。

相機應用通常假定設備的屏幕方向和相機預覽的寬高比呈固定關系。但是,大屏設備類型(例如可折疊設備)和顯示模式(例如多窗口和多屏幕)挑戰著這一假設。

在 Android 12 上,請求特定屏幕方向且不可調整大小 ( resizeableActivity="false" ) 的相機應用會自動進入邊襯區人像模式,從而確保相機預覽的屏幕方向和寬高比正確。在可折疊設備和其他具有相機硬體抽象層 ( HAL ) 的設備上,會對相機輸出應用額外的旋轉以補償相機感測器方向,並會剪裁相機輸出以匹配應用相機預覽的寬高比。無論設備屏幕方向如何以及設備是處於折疊狀態還是展開狀態,剪裁和額外的旋轉可確保應用正確呈現相機預覽。

除了 一些例外情況 之外,為了為短時間運行的 前台服務 提供流暢體驗,搭載 Android 12 或更高版本的設備可以將前台服務通知的顯示延遲 10 秒。此更改使某些短期任務可在顯示通知之前完成。

Android 11(API 級別 30)引入了 受限存儲分區 作為應用待機模式存儲分區。從 Android 12 開始,此存儲分區默認處於活躍狀態。在所有存儲分區中,受限存儲分區的優先順序最低(限制最高)。存儲分區按優先順序從高到低的順序排列如下:

除了使用模式之外,系統還會考慮應用的行為,以決定是否要將您的應用放在受限存儲分區中。

如果您的應用更負責地使用系統資源,就不太可能被放在受限存儲分區中。此外,如果用戶直接與您的應用互動,系統會將其放在一個限制較少的存儲分區中。

如需檢查系統是否已將您的應用放在受限存儲分區中,請調用 getAppStandbyBucket() 。如果此方法的返回值為 STANDBY_BUCKET_RESTRICTED ,則您的應用在受限存儲分區中。

如需測試您的應用在系統將其放在受限存儲分區中時的行為,您可以手動將您的應用移至該存儲分區。為此,請在終端窗口中運行以下命令:

在搭載 Android 12 或更高版本的受支持設備上,用戶可以通過按一個切換開關選項,為設備上的所有應用啟用和停用攝像頭和麥克風使用許可權。用戶可以從 快捷設置 訪問可切換的選項(如圖 1 所示),也可以從系統設置中的「隱私設置」屏幕訪問。

詳細了解這些 切換開關 以及如何檢查您的應用是否遵循了關於 CAMERA 和 RECORD_AUDIO 許可權的最佳實踐。

在搭載 Android 12 或更高版本的設備上,當應用使用麥克風或相機時,圖標會出現在狀態欄中。

詳細了解這些 指標 以及如何檢查您的應用是否遵循了關於 CAMERA 和 RECORD_AUDIO 許可權的最佳實踐。

[圖片上傳中...(image-bd519-1643780883994-1)]

<figcaption style="box-sizing: inherit; font-size: 14px; margin-top: -4px;"> 圖 1. 「快捷設置」中的麥克風和攝像頭切換開關。</figcaption>

[圖片上傳中...(image-f49bfd-1643780883994-0)]

<figcaption style="box-sizing: inherit; font-size: 14px; margin-top: -4px;"> 圖 2. 麥克風和攝像頭指示標志,顯示了最近的數據訪問。</figcaption>

在搭載 Android 12 或更高版本的設備上,根據應用對其他應用的 軟體包可見性 ,以 Android 11(API 級別 30)或更高版本為目標平台且調用以下某種方法的應用會收到一組過濾後的結果:

Android 12 移除了之前棄用的加密演算法的許多 BouncyCastle 實現,包括所有 AES 演算法。系統改用這些演算法的 Conscrypt 實現。

如果符合以下任何條件,則此變更會影響您的應用:

在 Android 12 及更高版本中,當某個應用首次調用 getPrimaryClip() 以 從另一個應用訪問剪輯數據 時,會彈出一個消息框消息,通知用戶對剪貼板的訪問。

消息框消息內的文本包含以下格式: <var translate="no" style="box-sizing: inherit; color: var(--devsite-var-color); -webkit-font-smoothing: auto; font-weight: 500;">APP</var> pasted from your clipboard.

注意 :您的應用可能會調用 getPrimaryClipDescription() 以接收有關 剪貼板上當前數據的信息 。當您的應用調用此方法時,系統不會顯示消息框消息。

在 Android 12 及更高版本中, getPrimaryClipDescription() 可以檢測到以下詳細信息:

為了加強用戶與應用和系統互動時的控制,從 Android 12 開始,棄用了 ACTION_CLOSE_SYSTEM_DIALOGS intent 操作。除了 一些特殊情況 之外,當應用嘗試 調用包含此操作的 intent 時,系統會基於應用的目標 SDK 版本執行以下操作之一:

在以下情況下,應用仍然可以在 Android 12 或更高版本上關閉系統對話框:

為了維持系統安全並保持良好的用戶體驗,Android 12 會阻止應用使用 觸摸事件 ,使用觸摸事件時疊加層會以不安全的方式遮掩應用。 換言之,系統會屏蔽穿透某些窗口的觸摸操作,但 有一些例外情況 。

此變更會影響選擇讓觸摸操作穿透其窗口的應用,例如使用 FLAG_NOT_TOUCHABLE 標志。包括但不限於以下示例:

在以下情況下,允許執行「穿透」觸摸操作:

如果系統屏蔽觸摸操作, Logcat 會記錄以下消息:

在搭載 Android 12 或更高版本的設備上,不受信任的觸摸功能默認被屏蔽。如需允許不受信任的觸摸操作,請在終端窗口中運行以下 ADB 命令 :

如需將行為還原為默認設置(不受信任的觸摸操作被屏蔽),請運行以下命令:

Android 12 更改了在按下「返回」按鈕時系統對為其任務根的啟動器 activity 的默認處理方式。在以前的版本中,系統會在按下「返回」按鈕時完成這些 activity。在 Android 12 中,現在系統會將 activity 及其任務移到後台,而不是完成 activity。當使用主屏幕按鈕或手勢從應用中導航出應用時,新行為與當前行為一致。

注意 :系統僅會將新行為應用於為其任務根的啟動器 activity,即使用 ACTION_MAIN 和 CATEGORY_LAUNCHER 聲明 intent 過濾器 的 activity。對於其他 activity,在按下「返回」按鈕時,系統會像以前一樣完成 activity。

對於大多數應用而言,此變更意味著使用「返回」按鈕退出應用的用戶可以更快地從 溫狀態 恢復應用,而不必從 冷狀態 完全重啟應用。

建議您針對此變更測試您的應用。如果您的應用目前替換 onBackPressed() 來處理返回導航並完成 Activity ,請更新您的實現來調用 super.onBackPressed() 而不是完成 Activity。調用 super.onBackPressed() 可在適當時將 activity 及其任務移至後台,並可為不同應用中的用戶提供更一致的導航體驗。

另請注意,通常,我們建議您使用 AndroidX Activity API 提供自定義返回導航 ,而不是替換 onBackPressed() 。如果沒有組件攔截系統按下「返回」按鈕,AndroidX Activity API 會自動遵循適當的系統行為。

在 Android 12 中,無論顯示屏是否支持無縫過渡到新的刷新率,都會發生使用 setFrameRate() 實現的刷新率變化;無縫過渡是指沒有任何視覺中斷,比如一兩秒鍾的黑屏。以前,如果顯示屏不支持無縫過渡,它在調用 setFrameRate() 後通常會繼續使用同一刷新率。您可以調用 getAlternativeRefreshRates() 來提前確定向新刷新率的過渡是否有可能是無縫過渡。通常,會在刷新率切換完成後調用回調 onDisplayChanged() ,但對於某些外接顯示屏,會在非無縫過渡期間調用該回調。

以下示例說明了您可以如何實現此行為:

Android 12 中添加了以下 API:

如需創建 Passpoint 建議,應用必須使用 PasspointConfiguration 、 Credential 和 HomeSp 類。這些類描述了 Wi-Fi Alliance Passpoint 規范 中定義的 Passpoint 配置文件。

如需了解詳情,請參閱 適用於互聯網連接的 Wi-Fi 建議 API 。

Android 12 包含更新後的受限制非 SDK 介面列表(基於與 Android 開發者之間的協作以及最新的內部測試)。在限制使用非 SDK 介面之前,我們會盡可能確保有可用的公開替代方案。

如果您的應用並非以 Android 12 為目標平台,其中一些變更可能不會立即對您產生影響。然而,雖然您目前仍可以使用一些非 SDK 介面( 具體取決於應用的目標 API 級別 ),但只要您使用任何非 SDK 方法或欄位,終歸存在導致應用出問題的顯著風險。

如果您不確定自己的應用是否使用了非 SDK 介面,則可以 測試您的應用 來進行確認。如果您的應用依賴於非 SDK 介面,您應該開始計劃遷移到 SDK 替代方案。然而,我們知道某些應用具有使用非 SDK 介面的有效用例。如果您無法為應用中的某項功能找到使用非 SDK 介面的替代方案,應 請求新的公共 API 。

如需詳細了解此 Android 版本中的變更,請參閱 Android 12 中有關限制非 SDK 介面的更新 。如需全面了解有關非 SDK 介面的詳細信息,請參閱 對非 SDK 介面的限制 。

閱讀全文

與android屏蔽觸摸相關的資料

熱點內容
王者榮耀怎麼互轉安卓 瀏覽:704
php獲取股票信息 瀏覽:150
java文件名和類名不一樣怎麼編譯 瀏覽:622
優盤里文件夾太多可以合並嗎 瀏覽:601
php類資料庫操作資料庫 瀏覽:84
加密貨幣最近發生的事 瀏覽:260
單片機啟動代碼 瀏覽:438
16進制單片機數字代碼 瀏覽:188
中國銀行程序員加班嗎 瀏覽:520
重命名如何轉換文件夾 瀏覽:768
伺服器賬號怎麼做 瀏覽:860
android訪問api 瀏覽:890
app製作網站源碼 瀏覽:975
社保pdf 瀏覽:159
php條件顯示 瀏覽:322
安卓玩什麼軟體好 瀏覽:129
java如何導出 瀏覽:22
俱樂部源碼棋牌 瀏覽:355
印度的19乘19演算法 瀏覽:195
中國移動app專屬流量如何取消 瀏覽:669