2013-03-19 5 views
2

내 앱은 일련의 스크린 샷을 가져 오지만 그 중 많은 양을 얻는 대신 항상 모든 스크린 샷을 덮어 씁니다. 찍은 날짜로 명명 된 스크린 샷을 얻고 싶습니다 (고유하게 만들어 문제를 해결할 것입니다).촬영 한 날짜별로 이름을 지정하여 촬영 한 스크린 샷의 이름을 자동으로 지정하는 방법은 무엇입니까?

$(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(); 
    } 
} 
+0

정답은 http://stackoverflow.com/a/8182190/2177105입니다. 감사! – user2177105

답변

0
  1. 쉘 지시가 작동하지 않습니다. 그냥 exec의 문자열입니다.
  2. Java에서 파일 이름을 생성하는 방법은 무엇입니까? date +%m.%d.%Y-%H:%M과 같은 문자열을 쉽게 얻을 수있는 방법이 있습니다.
관련 문제