[問題] 請問螢幕截圖一定要root嗎?
目前正在做一個螢幕截圖的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)
→
06/18 23:37, , 1F
06/18 23:37, 1F
→
06/18 23:38, , 2F
06/18 23:38, 2F
→
06/18 23:39, , 3F
06/18 23:39, 3F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):