ご指摘の通り時刻を設定することができましたが
根本的な質問ですが自分が作成したものではアプリ画面しか撮影できません。
Android本体のホーム画面に遷移した場合でも時間差などで撮影していますが
アプリのスナップショットしか撮影できないのはなぜでしょうか?
出来れば別のアプリやHOME画面などを撮影できると便利なのですが・・・
詳しい方出来ればご教授ください。
※
自分が書いたスナップショットという書き方が悪かったですね。
カメラ機能ではなくて画面をキャプチャする機能の事です。
サンプルソースでいうと
<h2>Snapshot</h2>
<div class="buttons">
<button onclick="showSnapshot()">Snapshot!!</button>
</div>
<script type="text/javascript">
function showSnapshot() {
droid.vibrate();
var path = "file:///sdcard/test.png";
droid.snapshotToFile(path, "png");
setTimeout(
function () {
if (droid.fileExists(path)) {
droid.startIntent(path);
} else {
alert("保存失敗!!");
}
}
,500);
}
</script>
この機能です。
やはりABasicPlugin側の
/**
* capture screen and save to file
* @param filename
* @param format png or jpeg
* @return
*/
public boolean snapshotToFile(String filename, String format) {
// snapshot
Bitmap bmp = null;
try {
webview.setDrawingCacheEnabled(true);
bmp = Bitmap.createBitmap(webview.getDrawingCache());
webview.setDrawingCacheEnabled(false);
} catch (Exception e) {
log_error("snapshot failed: " + e.getMessage());
return false;
}
if (bmp == null) {
log_error("snapshot failed: bmp = null");
return false;
}
// save to file
Bitmap.CompressFormat fmt = Bitmap.CompressFormat.PNG;
format = format.toLowerCase();
if (format == "jpeg" || format == "image/jpeg") {
fmt = Bitmap.CompressFormat.JPEG;
}
try {
byte[] w = bmp2data(bmp, fmt, 80/*middle*/);
boolean b = writeDataFile(filename, w);
bmp.recycle(); // recycle !!
return b;
} catch (Exception e) {
log_error("snapshot failed:" + e.getMessage());
return false;
}
}
private static byte[] bmp2data(Bitmap src, Bitmap.CompressFormat format, int quality) {
ByteArrayOutputStream os=new ByteArrayOutputStream();
src.compress(format,quality,os);
return os.toByteArray();
}
private boolean writeDataFile(String filename, byte[] w) throws Exception {
OutputStream out = WaffleUtils.getOutputStream(filename, waffle_activity);
if (out == null) throw new Exception("FileOpenError:" + filename);
try {
out.write(w, 0, w.length);
out.close();
return true;
} catch (Exception e) {
out.close();
}
return false;
}
この部分の改造が必要なのでしょうか?