我的应用程序需要一系列屏幕截图,但我没有得到很多,而是得到一个一直覆盖自身的屏幕截图。我想获取以拍摄日期命名的屏幕截图(我认为这将使它们独一无二并解决问题)。
为此,我执行以下操作:
$(date +%m.%d.%Y-%H:%M)
全线:
os.write(("/system/bin/screencap -p /sdcard/fly/$(date +%m.%d.%Y-%H:%M).png").getBytes("ASCII"));
但是文件没有出现。
我尝试过/sdcard/fly/screenshot%d.png
,但文件的名称与代码“screenshot%d”中的名称完全相同。
如何根据拍摄日期正确命名我的文件?
完整代码:
package ru.startandroid.develop.p0921servicesimple;
import java.io.IOException;
import java.io.OutputStream;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
public class MyService extends Service {
final String LOG_TAG = "myLogs";
public void onCreate() {
super.onCreate();
Log.d(LOG_TAG, "onCreate");
}
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(LOG_TAG, "onStartCommand");
someTask();
return super.onStartCommand(intent, flags, startId);
}
public void onDestroy() {
super.onDestroy();
Log.d(LOG_TAG, "onDestroy");
}
public IBinder onBind(Intent intent) {
Log.d(LOG_TAG, "onBind");
return null;
}
void someTask() {
new Thread(new Runnable() {
public void run() {
for (int i = 1; i <= 25; i++) {
Log.d(LOG_TAG, "i = " + i);
try {
Process sh = Runtime.getRuntime().exec("su", null);
OutputStream os = sh.getOutputStream();
os.write(("/system/bin/screencap -p /sdcard/fly/bob.png").getBytes("ASCII"));
os.flush();
os.close();
sh.waitFor();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}).start();
}
}