1

I have very good reasons not to want the shutter sound when taking photos. I have two camera apps that both have it, one came with the system and is called Camera. I deleted the other one, so I will call it xCamera from now on.

I therefore downloaded Silent Camera, which I found out about in an answer to some question over here. Its naming scheme simply makes no sense. Now Camera used to name photos by a yyyy-mm-dd-hh-mm-ss.jpg scheme, where:

  • yyyy is 4 digits representing the year the photo was taken,
  • mm is 2 digits for the months,
  • dd for the day,
  • hh for hour (24h clock IIRC),
  • mm for minute, and
  • ss for second.

xCamera had mostly the same scheme, without the dashes. Silent Camera has names like 1438263708113.jpg, which really seems just like a random sequence of numbers.

Now I sometimes need the date and, especially, the time a photo was taken for my own good reasons. You will probably say, "Well the computer can tell you that, it remembers the Date Modified and similar info, right?". Yes. Trouble is, Android File Transfer is somewhat buggy, and sometimes (in a pretty erratic manner) suddenly stops letting me drag-and-drop files to the Finder, i.e. as I drag the files, the AFT window comes along, which of course prevents copying.

Also, moving files between directories of the phone is almost always impossible. That is another story, but the first point - problems copying - leads me to AirDroid. Unfortunately, this leads to losing the date-and-time info, which is sometimes pretty valuable to me. So I either lose that info or rename all photos to include the name Camera would give the photo, were it to take that photo.

Bottom line is: is there a way to change the naming scheme of Silent Camera? And if so, what is it?

Note: I really don't want to root my phone

1
  • Comments are not for extended discussion; this conversation has been moved to chat.
    – Andrew T.
    Commented Jul 30, 2022 at 16:27

3 Answers 3

3

This solution is independent of any Camera app, and is tested on CM12 (Lollipop 5.0.2) and should work on other Lollipop ROMs as well.

While it seems that the question is about changing the naming scheme of Silent Camera app, the actual goal is to use an app that is free from shutter sounds. OP seems to have found an another app (see this answer) to suit the needs. But I would like to give a solution which would enable you to use any choice of Camera app(s), irrespective of whether it silences shutter sound!

Needed: A rooted device, and Tasker. Scroll to bottom for non-rooted devices.

All I'm going to do is activate Zen mode aka Do not Disturb mode which would kill Notification volume, and Ring volume. Don't worry! This mode would automatically switch to user defined sound settings as soon as you switch from Camera app to any other app (including your Launcher app).

Instructions

  1. Create a task in Tasker named Camera.
  2. Create an action in it as Code → Run Shell, and fill these details:

    • Command: settings get global zen_mode
    • Check Use Root
    • Store Output In: %Zen_mode

    We're storing the current value of Zen Mode (be it None or Priority or All) in a variable named %Zen_mode so that we can recall our sound settings when we close the Camera app.

  3. Create an another action in it as Code → Run Shell, and fill these details:

    • Command: settings put global zen_mode 2
    • Check Use Root

    This would change Zen Mode from the current setting to None i.e. no Ring or Notification sound, or vibration would disturb.

  4. Create an another task named No_Camera.
  5. Create an action in it as Code → Run Shell, and fill these details:

    • Command: settings put global zen_mode $(echo "%Zen_mode")
    • Check Use Root

    This would enable the sound settings you had before launching the Camera app.

  6. Create a profile with Application context, and choose your Camera app.
  7. Select the task Camera in it.
  8. Create an another profile with Application context, choose the Camera app you chose in step 6, and tap Invert at the bottom.
  9. Select the task No_Camera in it.
  10. Enable Tasker if disabled.

Now, launch your Camera app that you chose in the aforesaid step 6, and you would find that it is not making shutter sounds at all. Close the app, and you would see that your sound settings returned back immediately.

I've successfully tested this solution on default Camera app, Google Camera, and Camera FV-5. All tested individually as well as in group.


For Non-rooted devices

You can bypass the need of root permissions (if you barely reboot your device) by running loop-back in wireless mode. See step 2 in Instructions here to understand the loop-back ADB usage, and then use it with the aforementioned steps.

2

To sum up @Firelord's comments:

  1. The naming scheme is not random numbers, but rather the Unix time the photo was taken. It is easy to convert this to human time: one has but to paste the number sequence into epochconverter and convert it. That outputs GMT and your timezone. From the conversions, it seems the number sequence is even more accurate than the other apps' naming schemes, in that it gives millisecond precision.
  2. Firelord suggested ES File Explorer, but I downloaded one of three apps with a similar names and it gives false information.
  3. It is apparently possible to make a script to rename the photos, but I do not know how, and Firelord seems not to know either. Update: he did some research and came up with a way.
  4. His suggestion is then to choose between point 3 and another silent camera app. I found another app, [High Quality] silent camera, which gives names like 20150801_235032.jpg, reminding me of xCamera.

Point 4 is thus my choice. The only annoying thing is that the app created its own saving folder. So I found a way to change its path. It's easy: tap the gear on the bottom-left corner for Settings, tap Save to, find your favorite directory and hit OK. NOte that the app won't let you create a new folder, so for that you will have to use another app. I personally used ES File Explorer, but I wouldn't install it just for that. Unless it's the only option (besides installing another app just for that which is equivalent :P).

Update: Following Firelord's comment to this answer, this app seems to be the one I downloaded. I found it on Play Store by looking for silent camera, and it was the first result given. More precisely:

(Click image to enlarge)

Update 2: It also seems there is a way of silencing any Camera. Firelord managed it. I won't try it because I chose point 3, and because it seems to involve some programming at which I am a complete noob -- unless it's LaTeX programming, where I know quite a bit :).

0
1

Note: This is a partial answer, and might get completed in future.


This answer directly focuses upon changing the name of the images created by Silent Camera app. For an alternative approach to the question, see this answer.

We know that the name of the images is not a random number but Unix Time (as mentioned here). All we have to do is create and run a script to convert those names into date-time-stamp.

I've written a very basic script to do that. (Partial credit goes to many Q/A on SO, Unix.SE, and various sites on the web.)

#!/bin/sh

`for img in $(ls /sdcard/airdroid/Testing/); do new=$(echo ${img:0:10} | awk '{print strftime("%c",$1)}'); new=$(echo ${new//:/-}); yy=$(echo $new | rev | cut -d ' ' -f 1| rev); new=$(echo ${new/$yy/} | cut -c 5-);  new=$(echo $yy' '$new'.jpg'); new=${new// /_}; img_dir="/sdcard/airdroid/Testing/"; mv $img_dir$img $img_dir$new; done`;

(Readers: backticks are important in the pre-formatted text, so please don't edit them out.)

  1. All I'm doing with that script is picking up every image in a directory (Testing);
  2. Choosing only the first 10 characters from the name which would be used for conversion;
  3. Using awk to convert those characters into date-time-stamp;
  4. Removing, substituting, and adding words/characters to make the stamp look more lucid,
  5. Finally, moving the original files into new files with new names. (I'm comfortable with mv so I used it, but you can use rename command as well.)

If the device is rooted, you can install Busybox and be at peace. If it is not, then install Busybox Install (No Root).

  • Unrooted devices are restricted to Terminal apps only. I recommend Terminal Emulator because it can create a shortcut which can execute a script.
  • For rooted devices, use the Terminal app I mentioned above, or try to execute the script automatically.

Instructions

  1. Create a .sh file like Change_name.sh, and paste the aforesaid script into it. Change the entry of the directory from Testing to the one needed. Save the file.
  2. Make it executable. On my Android 4.2.1, I need root permissions to do so. As a workaround, I change permission of the script on my Linux machine, and then move the file into the device.
  3. See this answer if you want to create a Terminal shortcut on home screen for the script.
  4. Execute the script and it would create output files with names like:

    2015_Aug_1_21-53-40.jpg
    2015_Aug_1_21-53-42.jpg
    

    You can of course change the name into the one you want. The time it shows is in GMT while in my Linux machine, the script shows the local time!

The reason I said this is a partial answer is because:

  1. Silent Camera app sometimes creates files with name not resembling Unix Time, so my script would fail against those files.
  2. As the time progresses and the directory is filled with images having non-Unix-Time name, the script would fail since it assumes that all files have name based on Unix-Time, and tries to convert each one of them.

The solution is easy:

  1. For first issue, you can detect such files based on length, and numeric only type. Try adding 1438 before the file name, and then run the script.
  2. For second issue, make an if-else condition based on length, and numeric only type.

That's it for now!

2

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .