[閒聊] 為什麼安卓不開放截圖的API啊...

看板AndroidDev作者 (我是三舅)時間11年前 (2013/07/07 18:14), 編輯推噓15(15033)
留言48則, 13人參與, 最新討論串1/2 (看更多)
本來規劃了一個程式,想說擷取畫面應該是最簡單的部分 應該直接找出ScreenShot之類的函數在哪個API然後調用就好了 結果後來發現Android不知道為什麼,非常限制這個功能啊 花了好幾天爬文,結果找到的都不是可以直覺使用的方法 不是要root就是重開機之後就會消失效用的adb 為什麼android要故意把scrennshot這麼簡單的方法層層限制呢? 這幾天一直卡在這裡真是讓人煩躁...Orz 就算怕有甚麼操作或隱私風險,頂多改成提示使用者開放權限就好了啊... 真搞不懂為什麼Android要在截圖功能上的限制這麼執著 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.3.51

07/07 19:17, , 1F
限制是指?
07/07 19:17, 1F

07/07 19:49, , 2F
不能單純地把screenshot的方法開放出來給app直接使用 Orz
07/07 19:49, 2F

07/07 20:08, , 4F
問題大概就像上面這篇講的...把screenshot弄得很不直覺
07/07 20:08, 4F

07/07 20:08, , 5F
感覺就是不想給app開發者在app內使用這個功能
07/07 20:08, 5F

07/07 20:42, , 6F
沒有吧 簡單的範例我找到一堆欸 http://ppt.cc/8Hzg
07/07 20:42, 6F

07/07 20:43, , 7F
把當前的View以圖檔的方式存起來 應該沒那麼困難
07/07 20:43, 7F

07/07 20:43, , 8F
還是我誤會你的意思了?
07/07 20:43, 8F

07/07 20:46, , 9F
還是你想增加framework 擷取畫面的功能?
07/07 20:46, 9F

07/07 21:14, , 10F
抓 /dev/graphics/fb0 的我表示.........
07/07 21:14, 10F

07/07 21:25, , 11F
想要用service的方式抓其他app的畫面
07/07 21:25, 11F

07/07 21:25, , 12F
就是寫個可以抓圖的軟體,不用靠硬體的方式抓。
07/07 21:25, 12F

07/07 21:26, , 13F
可以請教Assyla大的抓圖方式嗎?
07/07 21:26, 13F

07/07 21:31, , 14F
assyla那個應該還是要root吧?
07/07 21:31, 14F

07/07 21:31, , 15F
我看了好像也是要用到ADB...
07/07 21:31, 15F

07/07 21:32, , 16F
目前想要找到一個單純使用一個apk就能夠抓圖的方法
07/07 21:32, 16F

07/07 21:33, , 17F
單純執行一個apk常駐背景或service就能夠定時抓圖的方法...
07/07 21:33, 17F

07/07 22:08, , 18F
除了手機內建 外不app難
07/07 22:08, 18F

07/07 23:00, , 19F
我覺得應該有辦法不用root就可以截取所有畫面
07/07 23:00, 19F

07/07 23:00, , 20F
因為eclipse就做到了 ddms的screen capture
07/07 23:00, 20F

07/07 23:05, , 21F
07/07 23:05, 21F

07/07 23:05, , 22F
我耍蠢了 下指令就好
07/07 23:05, 22F

07/07 23:05, , 23F
adb shell screencap -p /sdcard/screen.png
07/07 23:05, 23F

07/07 23:06, , 24F
目前找到一個lib 可以不用root抓圖
07/07 23:06, 24F

07/07 23:07, , 25F
http://ppt.cc/2oDv 不過抓出來是一片黑 囧>
07/07 23:07, 25F

07/07 23:07, , 26F
討論區好像有人修正一片黑的bug
07/07 23:07, 26F

07/07 23:08, , 27F
只是這個lib不知道可不可以寫成service一直去抓
07/07 23:08, 27F

07/07 23:10, , 28F
asl好像還是要連上電腦做設定?這樣做成APP好像會增加
07/07 23:10, 28F

07/07 23:11, , 29F
使用者的操作複雜度 Q_Q
07/07 23:11, 29F

07/07 23:14, , 30F
不過大概算是最後的辦法了
07/07 23:14, 30F
可以請教一下,他的這一句是甚麼意思嗎? Set ANDROID environmental variable to the root directory of your Android SDK (for example C:\Android or /var/lib/google/android-sdk). 實際上要怎麼設定? ※ 編輯: senjor 來自: 114.43.3.51 (07/07 23:16)

07/07 23:52, , 31F
我覺得是:set ANDROID=C:\ANDROID
07/07 23:52, 31F

07/07 23:56, , 32F
在WINDOWS主控台模式直接這樣打嗎?
07/07 23:56, 32F

07/08 00:08, , 33F
我的電腦→右鍵→內容→進階系統設定→環境變數→new
07/08 00:08, 33F

07/08 00:09, , 34F
這是win7,其他版本應該差不多
07/08 00:09, 34F

07/08 00:13, , 35F
謝謝
07/08 00:13, 35F

07/08 02:13, , 36F
現在都沒直接抓的 新方法一樣要靠電腦
07/08 02:13, 36F

07/08 02:15, , 37F
要接電腦 靠SHELL把service拉起來 權限才夠 才能抓
07/08 02:15, 37F

07/08 05:28, , 38F
ios一樣沒有開system wide的抓圖功能阿 XD
07/08 05:28, 38F

07/08 05:28, , 39F
真的要抓大概也只能以view為單位的抓了
07/08 05:28, 39F

07/08 08:32, , 40F
使用者通常不會去看開放什麼權限,可以抓圖會出現很多的
07/08 08:32, 40F

07/08 08:32, , 41F
問題
07/08 08:32, 41F

07/08 09:04, , 42F
推使用者不看權限
07/08 09:04, 42F

07/08 11:23, , 43F
可以背景抓圖應該有安全性問題 沒開放我不意外XD
07/08 11:23, 43F

07/08 11:47, , 44F
如果是Administrator的APK不知道有沒有權限讀fb0
07/08 11:47, 44F

07/08 11:47, , 45F
不開放應該多少有user隱私的問題吧
07/08 11:47, 45F

07/08 13:19, , 46F
本來想說使用者按兩個鍵就能辦到的功能,APP應該也很好做XD
07/08 13:19, 46F

07/09 12:55, , 47F
很多東西用想的感覺都很簡單w
07/09 12:55, 47F

07/09 22:33, , 48F
其實仔細想想windows截圖竟然完全不鎖其實蠻危險的
07/09 22:33, 48F
文章代碼(AID): #1HsJzkj1 (AndroidDev)
文章代碼(AID): #1HsJzkj1 (AndroidDev)