126 lines
4.1 KiB
Markdown
126 lines
4.1 KiB
Markdown
# Photo Saver - Android App
|
|
|
|
An Android application that allows you to save photos to a custom directory by sharing them to the app.
|
|
|
|
## Features
|
|
|
|
- Share photos from any app (Gallery, Camera, Browser, etc.)
|
|
- Choose a custom directory to save the photo
|
|
- Simple and easy to use
|
|
- Written in Java for easy modification
|
|
|
|
## How to Use
|
|
|
|
1. Install the app on your Android device
|
|
2. When viewing a photo in any app, long-press and select "Share"
|
|
3. Choose "Photo Saver" from the share menu
|
|
4. A directory picker will appear - navigate to the folder where you want to save the photo
|
|
5. Select the folder and the photo will be saved there automatically
|
|
|
|
**Important for QQ/WeChat users**:
|
|
- After installing Photo Saver, you may need to **restart QQ/WeChat** for the app to appear in the share menu
|
|
- If it still doesn't appear, try **restarting your phone**
|
|
- The app now supports all major Chinese apps including QQ, WeChat, and others
|
|
|
|
## App Compatibility
|
|
|
|
Photo Saver works with:
|
|
- ✅ **QQ** - Share photos from chats and moments
|
|
- ✅ **WeChat** - Share photos from conversations
|
|
- ✅ **Gallery apps** - Any photo viewer
|
|
- ✅ **Camera apps** - Save photos after capturing
|
|
- ✅ **Browsers** - Save images from websites
|
|
- ✅ **Social media** - Instagram, Facebook, Twitter, Weibo, etc.
|
|
- ✅ Any app with standard Android share function
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
PhotoSaver/
|
|
├── app/
|
|
│ ├── src/
|
|
│ │ └── main/
|
|
│ │ ├── java/com/example/photosaver/
|
|
│ │ │ └── MainActivity.java # Main activity handling photo sharing
|
|
│ │ ├── res/
|
|
│ │ │ ├── layout/
|
|
│ │ │ │ └── activity_main.xml # Main layout
|
|
│ │ │ └── values/
|
|
│ │ │ ├── strings.xml # String resources
|
|
│ │ │ └── styles.xml # App styles
|
|
│ │ └── AndroidManifest.xml # App manifest with share intent
|
|
│ └── build.gradle # App build configuration
|
|
├── build.gradle # Project build configuration
|
|
└── settings.gradle # Project settings
|
|
```
|
|
|
|
## Building the App
|
|
|
|
### Prerequisites
|
|
- Android Studio (Arctic Fox or later)
|
|
- Android SDK (API level 21 or higher)
|
|
- JDK 8 or later
|
|
|
|
### Steps
|
|
|
|
1. Open Android Studio
|
|
2. Select "Open an Existing Project"
|
|
3. Navigate to the PhotoSaver folder and open it
|
|
4. Wait for Gradle to sync
|
|
5. Connect your Android device or start an emulator
|
|
6. Click the "Run" button (green triangle) or press Shift+F10
|
|
|
|
## Customization
|
|
|
|
You can easily modify the code to suit your needs:
|
|
|
|
### Change the filename format
|
|
In `MainActivity.java`, find this line:
|
|
```java
|
|
String filename = "photo_" + System.currentTimeMillis() + ".jpg";
|
|
```
|
|
|
|
You can change it to:
|
|
```java
|
|
// Use date format
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US);
|
|
String filename = "IMG_" + sdf.format(new Date()) + ".jpg";
|
|
```
|
|
|
|
### Set a default directory
|
|
If you want to skip the directory picker and always save to a specific folder, you can modify the app to remember the last selected directory using SharedPreferences.
|
|
|
|
### Add file naming dialog
|
|
You could add a dialog to let users type a custom filename before saving.
|
|
|
|
## Permissions
|
|
|
|
The app requires the following permissions:
|
|
- `READ_EXTERNAL_STORAGE` - To read the shared photo
|
|
- `WRITE_EXTERNAL_STORAGE` - Only for Android 9 and below
|
|
|
|
For Android 10+, the app uses Scoped Storage and doesn't need storage permissions.
|
|
|
|
## Minimum Requirements
|
|
|
|
- Android 5.0 (API level 21) or higher
|
|
- Approximately 5MB of storage space
|
|
|
|
## Troubleshooting
|
|
|
|
**App doesn't appear in share menu:**
|
|
- Make sure the app is installed correctly
|
|
- Try restarting your device
|
|
|
|
**Can't save to certain folders:**
|
|
- Some system folders may be protected
|
|
- Try selecting a different folder like Pictures or Downloads
|
|
|
|
**File saves but can't find it:**
|
|
- Check the folder you selected in the directory picker
|
|
- The filename format is: `photo_[timestamp].jpg`
|
|
|
|
## License
|
|
|
|
This project is provided as-is for educational and personal use.
|