1.4.PCでSDCARDにコピーしたファイルが上書きされます
1.5.スリープ中に「同期を開始できない」または「エラー」となる
4.2.SDCARDまたはUSBメディアがアプリに認識されない
双方向同期は競合ファイル(*1)をシステムで判定できないためユーザーに判定を委ねる事になります。ユーザーが誤った判定を行うとファイルを削除してしまう可能性が高いため実装していません。
*1 双方でファイルを更新した結果、どちらのファイルが新しいのか不明なファイル)
同期タスクの「ファイルを選択する」有効にした後ファイルフィルターをタップしてフィルターを追加してください。フィルターは*.pdfや*.xlsxのように記述してください。
同期タスクを編集します。
ファイルフィルターを編集します。3と4を繰り返すことにより複数のフィルターを登録できます。
ファイルフィルターを保存します。
ファイルフィルターの登録が完了しました。
内部ストレージ
大部分の機種ではファイルの最終更新時刻が同期元と同じになりますが、一部機種ではシステムの制限により同期した時間に書き換わります。
SDCARDおよびUSBメディア
Android5/6では常に同期した時刻に書き換えられます、 Android7以上では多くの機種では時刻は書き換わりませんが、一部機種ではシステムの制限により同期した時間に書き換わります。
ファイルの最終更新時刻を変更できない機種では管理ファイルにファイル一覧を保存し最終更新時刻を維持しています。このため、PCでコピーしたファイルは管理ファイルに登録されないため差分ファイルとみなして上書きします。
2回目以降では管理ファイルと実ファイルが一致しますので上書きは行われません。ただし、SMBSync2以外のアプリでファイルを更新すると管理ファイルとの差が生じるために、同期を行うと上書きされます。
端末がスリープ中にスケジュール機能または外部アプリからの同期が開始できない又はエラーとなる場合は下記の方法をお試しください。
バッテリーの最適化を行わない(アプリメニュー->バッテリー最適化の表示)
アプリからWiFiをオンにする許可を与える(一部の機種ではWiFiの権限を許可する事が必要です)
アプリ設定の同期でWi-Fiロックと同期開始遅延防止を有効にする
下記サイトを参考に設定してください。
https://dontkillmyapp.com/
Android10の一部機種ではアプリからWiFiをオン・オフできない場合があります。WiFiをオンにする運用をご検討ください。
GooglePlayプライバシーポリシー準拠のためにロケーション権限を使用しないことにしたためにWiFiのSSID(アクセスポイント名)が読み取れなくなったためアクセスポイント名は使用できません。
以下のいずれかの方法で特定のWiFiに接続したときに同期を開始する事ができます。
1. WiFiルーターのIPアドレスを192.168.0.0/24以外にして、IPアドレスリストに登録する。
2. Android側でIPアドレスを固定にして、IPアドレスリストに登録する。
システム設定->ネットワークとインターネット->WiFi->貴方のSSIDを選択
画面上部の編集ICONをタップ
IP設定を静的に変更しIPアドレスに”192.168.0.100”を入力する
同期タスクを編集してWiFiオプションでIPアドレスリストを選択して、IPアドレスリストに登録する。
アーカイブのタスクでターゲットフォルダーをタップし、オプションを表示してください。次のオプションを有効にしてください。
アーカイブする際にファイル名の変更および格納するディレクトリーを作成する
アーカイブするときに撮影日に基づくディレクトリーを作成しファイルを格納する
下図はSDCARD上の/Arch/YYYY/に写真を保存します。YYYYは写真の撮影年のディレクトリーで、アーカイブ実行時に存在しない場合は作成します。
詳細は下記リンクのPDF「5.他のアプリケーションとの連携」を参照ください。
https://drive.google.com/file/d/0B77t0XpnNT7OSzBzcV9SemEwbkE/view?usp=sharing
Action : com.sentaroh.android.SMBSync2.ACTION_START_SYNC
Extra : SyncProfile:prof1, prof2
Target : Activity
サンプルタスクは下記のリンク先を参照。
https://drive.google.com/file/d/1AV1pIXlaR9yXlam3TTXBR85m-g22SXSr/view?usp=sharing
Master/Targetフォルダーまたはメニューからアクセス許可を与えることができます。
Android6までは下記の画面が表示されます。なお、下図はSDCARDの例です、USBの場合はSDカードをUSBに読み替えてください。
Android7/8/9/10では下記の画面が表示されますので、許可してください。
SMBSync2ではSDCARDまたはUSBメディアは/storage/xxxx-xxxxにマウントされている必要があります。(xxxx-xxxxはUUIDで英数字の組み合わせ)
マウントされているかはシステム情報で確認できます。USBの場合はUSBドライブを接続後にシステム情報を確認してください。
SDCARD
マウントポイントにマウントされていること
Storage ManagerでSDCARDとして認識されていること
USBメディア
マウントポイントにマウントされていること
Storage ManagerでUSBとして認識されていること
SMBSync2の設計上の理由からUSB-OTGにカードリーダーなどを接続して複数のメディアを接続した場合は使用できません、メディアは1つのみにしてください。
USB-OTGに接続されているUSBメディアがUSBとして認識されない場合は強制的に認識させるには下記手順で設定してください。
ここで登録したUUIDはSDCARDとして使用できません。
1. メニューから”USB UUIDリストの編集”を選択
2. “UUIDの追加”をタップ
3. USBメディアのUUIDをタップして選択して(下図の例では”FFEF-11E7”を選択) ”追加”をタップする
4. ”Save”をタップして保存する
SMBサーバーにホスト名を指定している場合で、VirtualBoxなどの仮想マシン環境で仮想ネットワークを有効にしているとホスト名でアドレス解決ができずエラーとなる。
下記の何れかの方法で解決できます。
仮想マシンを起動する
仮想ネットワークアダプターを無効にする
上記ができない場合はホスト名ではなくIPアドレスを使用する
IPアドレスリストではフィルターでワイルドカードが使用できます。
フィルターの例:
“192.168.*” : 192.168.0.0 – 192.168.255.255が許可
”192.168.*.*” : 192.168.0.0 – 192.168.255.255が許可
”192.168.100.*” : 192.168.100.0 – 192.168.100.255が許可
タスクリストを内部ストレージ・SDCARD・USBメディアに保存できます。また、保存したタスクリストを復元することもできます。
下記の何れかの操作が行われた時に同期タスクリストを自動保存します。
同期タスクの編集で保存
同期タスクリストの削除・改名
スケジュールの変更
スケジュールの有効・無効の切り替え
同期タスクリストの復元
アプリメニューの「タスクリストの書き出し」をタップして書き出し先を指定してください。マウントポイントをタップすると使用可能なストレージ一覧が表示されますので、選択してください。
アプリメニューの「タスクリストの読み込み」から選択画面を表示して、復元するファイルを選択してください。
アプリの初期化や再インストールを行った場合は、初期化以前の自動保存されたファイルでは下記の項目が復元できないために<decrypt failed>の文字列を割り当てます(*1)。
SMBサーバーのアカウント名とパスワード
ZIPフォルダーのパスワード
(*1) 自動保存されたファイルにSMBサーバーのアカウント名とパスワードおよびZIPフォルダーのパスワードが含まれている場合はAndroid Keystoreに保存された暗号キーで暗号化します。 この暗号キーはアプリの初期化や再インストールで再作成されるため初期化以前の暗号キーを使用することができないため復号できなくなります。
アプリメニューの「タスクリストの読み込み」から画面を表示して、「他のファイルを選択」をタップして読み込み先を指定してください。自動保存されたファイルが無いときは読み込みファイルの選択画面が直接表示されます。