作者HUGOZVC (HUGO)
看板AndroidDev
標題[問題] 請問螢幕截圖一定要root嗎?
時間Mon Jun 18 23:29:21 2012
目前正在做一個螢幕截圖的apk,
我是調用surfaceflinger的captureScreen。
在AndroidManifest.xml也有加上對frame buffer的讀取的權限如下,
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
在有root的裝置(ICS)上可以正確達到螢幕截圖的功能,
不過一旦裝到沒有root的裝置時(透過adb install)就失敗了,
logcat顯示錯誤訊息如下,
Permission Denial: can't read framebuffer
網路上查了一下,
有人說這可能是APK signature(簽名)的問題,
在frameworks/base/core/res/AndroidManifest.xml中,
android.permission.READ_FRAME_BUFFER的protectionLevel是signatureOrSystem,
表示這個apk需要被安裝在/system/app下?
或是這個apk需要擁有跟被安裝裝置一樣的signature?
符合上述其一就可以擁有READ_FRAME_BUFFER的權限。
請問假如我想裝在HTC One S上的話,
這個apk就必須擁有跟HTC One S一樣的signature嗎?
再查了一下signapk需要platform.x509.pem跟platform.pk8,
請問每個不同的device都有自己獨立的platform.x509.pem跟platform.pk8嗎?
有機會取得這兩個檔案嗎?
如果上述的方法不可行的情況下,
有可能不用root而達到螢幕截圖的功能嗎?
煩請解惑,感激不盡~
※ 編輯: HUGOZVC 來自: 118.233.248.193 (06/18 23:33)
→ vocaloid:如果不是rom provider... 有一招人家用過的 06/18 23:37
→ vocaloid:就是提示使用者把手機接到電腦... 然後用你包好的script 06/18 23:38
→ vocaloid:用adb把你抓圖的程式丟到手機上然後叫起來 orz 06/18 23:39