我想知道是否有方法通過某些「onXXXXX」回調方法檢測到或接收到廣播,如果其他進程正在拍攝我的應用程序顯示屏幕截圖。例如,如果SDK工具或其他屏幕捕獲應用程序執行「屏幕捕獲」,我希望收到通知,然後決定是否允許或不允許屏幕捕獲。阻止在Android應用程序中捕獲屏幕
如果這是不可能的,是否有辦法鎖定顯示器,以便其他進程不能屏幕捕獲我的顯示器?
我想知道是否有方法通過某些「onXXXXX」回調方法檢測到或接收到廣播,如果其他進程正在拍攝我的應用程序顯示屏幕截圖。例如,如果SDK工具或其他屏幕捕獲應用程序執行「屏幕捕獲」,我希望收到通知,然後決定是否允許或不允許屏幕捕獲。阻止在Android應用程序中捕獲屏幕
如果這是不可能的,是否有辦法鎖定顯示器,以便其他進程不能屏幕捕獲我的顯示器?
有no supported method可以截取Android上的其他應用。唯一的方法是使用生根或使用SDK,這兩者都不會阻止或接收通知。如果其他應用程序佔用您的屏幕截圖,則默認情況下會使用不支持的方法,並且可能會按照您的喜好進行操作。
我想澄清一下,我不是暗示你不應該使用任何可用的方法來保護你的應用程序。我只是讓你知道,如果不使用不支持的方法,這可能是不可能的,而且即使你使用它們,你也可能無法百分之百保護屏幕截圖。
這個工作對我的三星標籤2 7"
使用the following approach,簡單地將FLAG_SECURE
添加到窗口標誌
public class FlagSecureTestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(LayoutParams.FLAG_SECURE,
LayoutParams.FLAG_SECURE);
setContentView(R.layout.main);
}
}
與您可能需要更改警告
LayoutParams
至
WindowManager.LayoutParams
這個工作,應該是大多數開發人員的答案。 –
無法在7.0環境模式下工作.. –
實際上,這些功能在官方資源中已經開始出現,並且可以在非root應用程序的許多供應商設備上使用。 –
儘管如此,它們在API文檔中才是官方的。我只是說,因爲截取屏幕截圖的任何方法目前都不受支持,或者直接來自SDK,因此很可能沒有官方方法與其進行交互。 –
'View.getDrawingCache(boolean autoScale)''?該文件顯示:_返回該視圖圖形緩存的位圖._ – iDroid