SMBSync3はAndroid端末の内部ストレージ、外部ストレージ(MicroSD, USBメディア)とPC/NASの間でSMB1, SMB2またはSMB3プロトコルを使用し無線LAN経由でファイルの同期を行うためのツールです。同期はソースから宛先への一方向で、ミラー、移動、コピー、アーカイブが使用できます。
SMBSync3のスケジュール機能または外部アプリケーション(TaskerやAutoMagicなど)により定期的に同期を開始する事が可能です。外部アプリケーションとのインターフェースについては5.他のアプリケーションとの連携を参照してください。
ミラー
ソース側のディレクトリーとファイルを宛先側に差分コピー(*1)し、コピー終了後にソース側に存在しない宛先側のファイルとディレクトリーを削除する。
移動
ソース側のディレクトリーとファイルを宛先側に差分コピーし、宛先側にコピーしたソース側のファイルを削除する。(ただし、ソースと宛先に同名でファイルサイズと更新日時が同じファイルはコピーせずソース側のファイルを削除)
コピー
ソース側のディレクトリーに含まれるファイルを宛先側に差分コピーする。
アーカイブ
ソース側のディレクトリーに含まれる写真とビデオをアーカイブ実行日時より撮影日時が7日以前や30日以前などの条件で宛先に移動する。(ただし、宛先にZIPは使用できません)
*1下記の3条件のうちいずれかが成立した場合に差分ファイルと判定し、コピーや移動を行います。ただし、同期タスクのオプションでファイルサイズと最終更新時間を無視することができます。
ファイルが存在しない
ファイルサイズが違う
最終更新日時が3秒以上違う(秒数は同期タスクのオプションにより変更可能)
同期タスクの一覧を表示し、実行・追加・削除・編集が行えます。
画面上部の同期ボタン
同期タスクを選択していない場合は「自動タスク」に設定されているタスクを全て開始します。同期タスクを選択している場合は、選択されたタスクを介します。
同期タスク右端の同期ボタン
ボタンを押された同期タスクを開始します。
下記の同期タスクのオプションがあります。
テストモード
チェックした場合はファイルの削除とコピーが行われません。同期タスクで同期した場合にコピーや削除されるファイルを確認するために使用してください。 コピーや削除されるファイルは履歴やメッセージで確認できます。テストモードでは自動同期タスクに設定できません。
自動同期タスク
チェックされていると画面上部の同期ボタンを押した時に同期が開始されます(グループタブで同期を開始するタスクを変更できます)。
同期タスク名
同期タスクの名前は重複した名前を使用できません。名前は大文字・小文字を区別しません。
同期方式
ミラー、コピー、移動、アーカイブの方式を選択する。同期はソースから宛先の一方向で行います。
ミラー
ソース側のディレクトリーとファイルを宛先側に差分コピー(*1)し、コピー終了後にソース側に存在しない宛先側のファイルとディレクトリーを削除する。
ミラー
ソース側のディレクトリーとファイルを宛先側に差分コピーし、宛先側にコピーしたソース側のファイルを削除する。(ただし、ソースと宛先に同名でファイルサイズと更新日時が同じファイルはコピーせずソース側のファイルを削除)
コピー
ソース側のディレクトリーに含まれるファイルを宛先側に差分コピーする。
アーカイブ
ソース側のディレクトリーに含まれる写真とビデオをアーカイブ実行日時より7日以前や30日以前などの条件で宛先に移動する。(宛先フォルダーがZIPの場合は使用できません)
(*1)下記の3条件のうちいずれかが成立した場合に差分ファイルと判定し、コピーや移動を行います。ただし、同期タスクのオプションでファイルサイズと最終更新時間を無視することができます。
ファイルが存在しない
ファイルサイズが違う
最終更新日時が3秒以上違う
ソースと宛先を入れ替える
ソースフォルダーと宛先フォルダーの内容を入れ替える
ソースフォルダー
タップすると同期元のフォルダー編集画面が表示されます
宛先フォルダー
タップすると同期先のフォルダー編集画面が表示されます
同期するファイルを選択する
チェックしないと全てのファイルを同期します。チェックすると詳細が表示されます。
オーディオファイルを同期する
チェックすると下記の拡張子のファイルを同期します。
aac, aif, aifc, aiff, flac, kar, m3u, m4a, mid, midi, mp2, mp3, mpga, ogg, ra, ram, wav
イメージファイルを同期する
チェックすると下記の拡張子のファイルを同期します。
bmp, cgm, djv, djvu, gif, ico, ief, jpe, jpeg, jpg, pbm, pgm, png, pnm, ppm, ras, rgb, svg, tif, tiff, wbmp, xbm, xpm, xwd
ビデオファイルを同期する
チェックすると下記の拡張子のファイルを同期します。
avi, m4u, mov, mp4, movie, mpe, mpeg, mpg, mxu, qt, wmv
ファイルフィルター
上記以外で同期するファイルの名前や拡張子を選択できます。
同期するサブディレクトリーを指定する
チェックしないと全てのサブディレクトリーを同期します。チェックするとディレクトリーフィルターボタンが表示されます。
ディレクトリーフィルター
同期するディレクトリーの名前を選択できます。
充電中の時だけ同期を開始する
チェックした場合は充電中の時だけ同期を開始できます。充電していない時に同期を開始するとエラーになります。
上書コピーまたは削除の前に確認する
チェックした場合はファイルの削除と上書きするときに確認ダイアログを表示します。
エラーオプション
エラーが発生した場合の挙動を選択できます。
停止
同期を停止し、後続タスクの実行を停止する
全てのエラーを無視して後続タスクを開始する
後続タスクを必ず実行したい場合に使用してください。
ネットワークオプションでエラーとなった場合は後続タスクを開始する
プライベートアドレスでない時と指定されたIPアドレス以外の場合に後続タスクを実行したい場合に使用してください。
ネットワークオプション
同期を開始する条件を下記から選択できます。
無線LANがオフ
常に同期を開始できます。
APに接続されている
アクセスポイントに接続されていれば同期を開始できます。
プライベートアドレス
プライベートIPアドレスが割り当てられている時に同期を開始できます。
IPアドレスリスト
IPアドレスリストに登録されているIPアドレスが割り当てられている時に同期を開始できます。「同期可能なIPアドレスリスト」ボタンを押してアクセスポイントを登録してください。
グローバルIPアドレスでの同期を許可する
チェックされている場合はネットワークアドレスがグローバルアドレスでも同期を可能にする
以下は詳細オプションです。必要な時に設定してください。
サブディレクトリーを処理する
チェックすると同期フィルターで選択されたサブディレクトリーを同期する。
空のディレクトリーを処理する
チェックすると空のディレクトリーを同期します。(宛先に空のディレクトリーを作成する)
隠しディレクトリーを処理する
チェックすると隠しディレクトリーを同期します。(Androidでは隠しディレクトリーの名前は「.」から始まりますが、WindowsやSambaではディレクトリーの名前ではなくディレクトリーのビットであらわされますので、作成されたディレクトリーは隠しディレクトリーになりません)
隠しファイルを処理する
チェックすると隠しファイルを同期します。(Androidでは隠しファイルの名前は「.」から始まりますが、WindowsやSambaではファイルの名前ではなくディレクトリーのビットであらわされますので、作成されたファイルは隠しファイルになりません)
ファイルを上書きする
チェックを外すとファイルの上書きは行われません。
フィルターにより除外されたディレクトリー/ファイルを削除する
有効にするとフィルターで除外されたディレクトリーとファイルを宛先フォルダーから削除します。
同期中にネットワークエラーが発生したらリトライする
リモート側のエラーに限り同期をリトライする。リトライは最大3回行う、それぞれのリトライはエラー発生から30秒経過後に行う。
ミラーの時は削除を先に行う
チェックすると最初にソースフォルダーに存在しないディレクトリーとファイルを削除し、その後にソースフォルダーとファイルサイズや最終更新時間が違うファイルをコピーします。
ソースフォルダーがSMBの場合はネットワーク経由でファイルのスキャンを行うため処理時間が長くなります。可能ならばSMBプロトコルは「SMBv2/3」をご使用ください。
フィルターにより除外されたディレクトリー/ファイルを削除する
チェックすると通常のミラー(*)に加えて、フィルターにより除外されたディレクトリー/ファイルを宛先ディレクトリーから削除します。
(*) ソースディレクトリーに存在しないディレクトリー/ファイルは宛先ディレクトリーから削除されます。
宛先ファイルの最終更新時刻をソースと同じにしない
チェックした場合はソースからコピーしたファイルの最終更新時刻はファイルがコピーされた時刻になります。差分判定はファイルの存在の有無とファイルサイズで判定されます。
SMBフォルダー書き込み時のIOバッファーを16KBに制限する
PC/NASフォルダーへの書き込み時に“Access is denied”エラーが発生した時に試してみてください。チェックした場合はリモートファイル書き込み時のIOバッファーを16KBに制限します。ただし、パフォーマンスは低下します。
差分判定にファイルサイズを使用する
チェックした場合はファイルサイズが違う場合は差分ファイルとして判定する。
ソースのファイルサイズが大きい時だけ差分ファイルとして判定する
チェックするとソースのファイルサイズが大きい時だけファイルのコピーを行います。
差分判定にファイルの最終更新時間を使用する
チェックした場合はファイルの最終更新時刻が違う場合は差分ファイルとして判定する。
最終更新時刻の差
指定した時間差内であれば変更なしとします
宛先ファイルがソースファイルよりも新しい時は宛先ファイルを上書きしない。
チェックするとファイルサイズおよび最終更新時刻が違っていてもソースファイルが宛先ファイルよりも新しい時だけファイルを上書きします。
夏時間と標準時の時間差を無視する
チェックすると指定された時間での差を無視する。
ディレクトリー名またはファイル名に使用できない文字が含まれているディレクトリーまたはファイルの処理をスキップする。 (", :, \, *, <, >, |)
チェックすると使用できない文字が含まれているディレクトリー/ファイルを処理せず警告メッセージを表示し次のディレクトリー/ファイルを処理します。
撮影日時がExifから取得できない時に確認メッセージを表示する
チェックすると画面に確認メッセージが表示されます。確認メッセージに応答するまで同期は中断します。
外部ストレージに同期する際に4GBを超えるソースファイルを無視する
チェックするとローカルストレージに同期するソースファイルの大きさが4GB以上のファイルを無視する事により、MicroSDカードへの同期でI/Oエラーを防止できます。
ファイル名が255バイトを超えているファイルを無視する
チェックすると宛先ファイル名が255バイトを超えているファイルを無視します。チェックしないとエラーで同期を終了します。
SMBサーバーを検索して設定する
ネットワークをスキャンし、SMBサーバー一覧から選択して設定する。
下図は設定の画面例です。
詳細設定を編集する
SMBサーバーに関するパラメーターを手動で設定する。
サーバー名/アドレス
リモートのホストを名前またはIPアドレスで指定する。名前でログオンできない場合はIPアドレスで指定してください。
SMBプロトコル
使用するSMBプロトコルを指定できます。
SMB1
SMB V2/3(2.12)
ポート番号を指定する
標準のポート番号が使用できない場合に指定します。標準のポート番号は445または139です。
アカウント名/パスワードを使用する
SMBサーバーへの認証にアカウント名またはパスワードを使用します。
アカウント名
PC/NASで設定したユーザー名を指定する。Windowsの場合はMicrosoftアカウントは使用できません、ローカルアカウントを指定してください。
パスワード
PC/NASで設定したパスワードを指定する
一覧表示
PC/NASの共有名一覧を表示する
(一覧ボタンを押すと選択可能な共有名が表示されますので、共有名をクリックし、了解を押す)
共有名
共有名を手で入力する
ディレクトリー名変数の編集
宛先ディレクトリー名に日時を含める場合はボタンタップして編集してください。
一覧表示
PC/NASのディレクトリー一覧を表示する
(一覧ボタンを押すと選択可能なディレクトリーが表示されますので、ディレクトリーをクリックし、了解を押す)
ディレクトリー
PC/NASのディレクトリーを手で入力することが可能です。宛先ディレクトリーの場合はディレクトリーが存在しない場合は同期実行時に作成されます。
注意:以下の条件では循環参照となりループします。ディレクトリーフィルターの指定またはソース側のディレクトリーを宛先とは違うものを指定してください。
ソースと宛先で同じSMBサーバーを指定している時にディレクトリー指定が無くて、ディレクトリーフィルターの指定が無い時
以下は同期タイプがアーカイブの時のみ表示されます。
宛先ディレクトリーにソースディレクトリーを作成しない
チェックすると、宛先ディレクトリーにソースディレクトリーに含まれるサブディレクトリーが作成しないでファイルを書き出します。
アーカイブする対象
アーカイブ実行日時より古い撮影日時のファイルを選択する。(撮影日時に関係なく、撮影日が7日以上古い、撮影日が30日以上古い、撮影日が60日以上古い、撮影日が90日以上古い、撮影日が180日以上古い、撮影日が1年以上古いから選択できます)
ファイル名の順序番号
ファイル名に順序番号を追加できます。
ファイル名変数の編集
ファイル名に日時を含める場合はボタンタップして編集してください。
ローカルストレージ
タップすると使用できるストレージの一覧が表示されますので、使用するストレージを選択してください。
外部ストレージの使用許可
使用許可されていない外部ストレージがマウントされている時に表示されます。MicroSDカードをフォーマットした場合はUUIDが変わりますので、使用許可をしてください。
(2.7.SDCARD/USBメディアのアクセス許可の方法参照)
一覧表示
ディレクトリー一覧を表示する
(一覧ボタンを押すと選択可能なディレクトリーが表示されますので、ディレクトリーをクリックし、了解を押す)
ディレクトリー名変数の編集
宛先ディレクトリー名に日時を含める場合はボタンタップして編集してください。
ディレクトリー
ローカルのディレクトリーを手で入力できます。宛先ディレクトリーの場合はディレクトリーが存在しない場合は同期実行時に作成されます。
注意:以下の条件では循環参照となりループします。ディレクトリーフィルターの指定またはソース側のディレクトリーを宛先とは違うものを指定してください。
ソースと宛先で同じSMBサーバーを指定している時にディレクトリー指定が無くて、ディレクトリーフィルターの指定が無い時
以下は同期タイプがアーカイブの時のみ表示されます。
宛先ディレクトリーにソースディレクトリーを作成しない
チェックすると、宛先ディレクトリーにソースディレクトリーに含まれるサブディレクトリーが作成されません。
アーカイブする対象
アーカイブ実行日時より古い撮影日時のファイルを選択する。(撮影日時に関係なく、撮影日が7日以上古い、撮影日が30日以上古い、撮影日が60日以上古い、撮影日が90日以上古い、撮影日が180日以上古い、撮影日が1年以上古いから選択できます)
ファイル名の順序番号
ファイル名に順序番号を追加できます。
ファイル名変数の編集
ファイル名に日時を含める場合はボタンタップして編集してください。
ローカルストレージ
タップすると使用できるストレージの一覧が表示されますので、使用するストレージを選択してください。
外部ストレージの使用許可
使用許可されていない外部ストレージがマウントされている時に表示されます。MicroSDカードをフォーマットした場合はUUIDが変わりますので、使用許可を要求してください。
(2.7.SDCARD/USBメディアのアクセス許可の方法参照)
ファイル一覧
ファイル一覧からZIPファイルを選択してください。
ファイル名
ZIPファイル名を手で入力できます。ファイルが存在していない場合は同期実行時に作成されます。
圧縮レベル
ZIPファイルにするときの圧縮レベルを選択する。
Fastest(圧縮時間が一番早いが圧縮率が低い)
Fast(圧縮時間が早いが圧縮率が低い)
Normal
Maximum(圧縮時間が遅いが圧縮率が高い)
暗号化方法
暗号化を指定する。
無し
ZIP2.0互換
AES128ビット
AES256ビット
パスワード・確認パスワード
暗号化のパスワードを指定する。
ファイル選択フィルターは同期するファイルを選択するための物です。2つ以上の選択または除外をフィルターに入力した場合はOR条件となります。ただし、選択と除外の両方が指定された場合は、除外が優先されます。
選択/除外
選択フィルターまたは除外フィルターの指定
追加
フィルター欄に入力された内容をフィルターとして追加
フィルター
フィルター値です。DSC*.JPGなどと入力してください。
ディレクトリー選択フィルターは同期するディレクトリーを選択するための物です。2つ以上の選択または除外をフィルターに入力した場合はOR条件となります。ただし、選択と除外の両方が指定された場合は、除外が優先されます。
選択/除外
選択フィルターまたは除外フィルターの指定
追加
フィルター欄に入力された内容をフィルターとして追加
フィルター
フィルター値です。DIR/SUBなどと入力してください。
フィルターは正規表現で入力しないでください。
フィルターが”\”で始まる場合は全てのディレクトリーパスと比較して、除外します。(選択はできません)
-“DIR_A”
: MASTER_DIR/DIR_Aを選択・除外
-“DIR_A/SUBDIR_A” : MASTER_DIR/DIR_A/SUBDIR_A を選択・除外
-“\CACHE_DIR” : MASTER_DIR/CACHE_DIRとMASTER_DIR/DIR_A/CACHE_DIRを除外
Master/Targetフォルダーまたはメニューからアクセス許可を与えることができます。「外部ストレージの使用許可」ボタンを押してください。
1.Android8/8.1/9.0の画面例
2.Android 10の画面例
スケジュールボタン(画面上部に配置)
スケジュール同期機能の有効・無効の切り替え
スケジュールスイッチ(画面右端に配置)
スケジュールの有効・無効の切り替え
スケジュールを有効にする
スケジュールの有効・無効を設定
スケジュール方法
スケジュールは下記を指定可能
毎時(毎時10分に実行など)
毎日(毎日20時00分に実行など)
毎月(毎月10日20時30分に実行など)
曜日指定(月曜日と金曜日の21時00分に実行など)
インターバル(端末が再起動されてから10分間隔に実行など、間隔は1分刻み)
インターバルスケジュールタイムをリセットする
同期開始時間をインターバルタイムにセットします。(インターバルタイムを5分にセットして「スケジュールリストの編集」の保存ボタンを押した時刻が1:10:20ならば1:15:0に開始されます)
最初の同期を次の分に行います
インターバルスケジュールで最初に行う時刻を現時刻より秒を繰り上げた分に行います。(保存ボタンを押した時刻が1:10:20ならば1:11:0になります)
自動同期タスクだけを同期する
チェック無しにすると同期タスクを選択することができます
同期リストの編集
ボタンを押すと編集画面が表示されます。同期するタスクを選択してください。
同期開始時にWi-Fiをオンにする(Android 10以降では使用不可)
同期開始時にWi-FiがオフならばWi-Fiをオンにする
遅延時間(Android 10以降では使用不可)
同期開始時にWi-Fiをオンにしたならば、同期終了時にWi-Fiをオフにする
同期終了後にWi-Fiをオフにする(Android 10以降では使用不可)
同期終了時にWi-FiがオンならばWi-Fiをオフにする
同期は充電中のみ開始する
同期タスクオプションを変更することができます。
実行するタスクを場面毎にまとめることができます。画面右端の同期ボタンを押すことで同期を開始します。
ショートカットから起動されたときに実行するグループを指定できます。グループが割当られていないボタンから起動されたときは「自動」に設定されている同期タスクを全て実行します。
タスクタブ画面上部の同期ボタンから起動されたときに実行するタスクを指定できます。グループが割当られていない時は「自動」に設定されている同期タスクを全て実行します。
履歴を表示・送信・削除ができます
表示
履歴項目をタップすると詳細が表示されます。
送信・削除
履歴項目を長押しすると履歴を送信または削除ができます。
メッセージの表示・削除ができます。
画面右上のメニューでは下記項目が使用できます。
6.1.タスクリスト保存
6.2.タスクリスト取込み
6.3.ログ管理
6.4.管理ファイルの保守
6.5.設定
6.6.バッテリー最適化の表示
6.7.強制終了
6.8.外部ストレージ使用許可
6.9.システム情報
6.10.SMBSync3について
タスクリストをファイルに書き出します。
ファイルからタスクリストを取込みします。
ログファイルの削除や送信ができます。
ログを記録する
ログ記録を有効にする。(設定での指定を変更します)
ログを表示
アクティブログを表示します。
開発者にログを送る
開発者にログを送ることができます。
ログレベル
記録するログのレベルです。
不要になったSMBSync3の管理データを削除します。
下記項目を設定します。
① 同期オプション
② ユーザーインターフェース
③ SMB設定
④ セキュリティ
⑤ その他
Wi-Fiロック
チェックされている場合は、同期実行中にWi-Fiロックを取得する
同期履歴
チェックすると同期の詳細記録を保存します。また、履歴タブで履歴をタップすると詳細を表示することができます。
スリープ中の同期開始遅延防止
チェックされている場合は同期開始時に画面を点灯してスリープからの復帰を確実にします。
ロケーションサービス有効化の警告
警告メッセージの表示・非表示を切り替えます
外部ストレージ追加の通知
通知メッセージの表示・非表示を切り替えます
圧縮しないファイルタイプ
ZIPフォルダーに書き込む際に圧縮しないファイルの拡張子
通知メッセージ
通知領域にメッセージを表示する条件を設定します。
通知音
同期終了時に省略時通知音を再生するかどうかを設定します。
通知の音量
通知音の音量を設定します。音量を%で指定します。
バイブレーション
同期終了時に振動させるかどうかを設定します。
画面の向き
画面の向きをポートレイトに固定する。
画面テーマ
画面テーマにライト(白地)を使用するかどうかを設定します。
言語
システム設定と異なる言語を表示できます。
SMBV1のオプションを設定できます。通常は変更しないでご使用ください。
Restore default value
全ての設定値を初期値に戻します
lmCompatibility
JCIFS LMコンパティビリティ(初期値:3)
Client response timeout
30000ミリ秒
Disable plain text passwords
パスワードを暗号化しない(初期値:チェック無し)
useExtendedSecurity
JCIFS拡張セキュリティ(初期値:チェック有り)
セキュリティの設定を行います。
セキュリティ
タップすると詳細設定画面が表示されます。アプリケーションパスワードを作成している場合はパスワード認証画面が表示され正しいパスワードが入力されないと先に進めません。
アプリケーションパスワード
作成
アプリケーションパスワードの作成を行います
削除
既に作成済みのアプリケーションパスワードを削除します
変更
アプリケーションパスワードを変更します
保護する項目
アプリケーションパスワードが作成されない限り有効になりません
認証の有効時間を30分にする
チェックしないとアプリが終了するまで再認証を行いません。ただし、セキュリティ詳細設定画面を呼び出す際には必ず再認証を行います。
アプリを起動する時にパスワード認証を行う
正しいパスワードが入力されるまでアプリを起動できません。ただし、スケジュール機能や外部アプリケーションまたはSMBSync2のショートカットでの同期実行はパスワード無しで実行されます。
同期タスクを編集する時にパスワード認証を行う
正しいパスワードが入力されるまで編集はできません。
「タスク書き出し」する時にパスワード認証を行う
正しいパスワードが入力されるまで「タスク書き出し」はできません。
SMBフォルダーの編集で保存されたアカウント名をパスワード非表示にする
チェックすると保存されたアカウント名とパスワードは空白になりますので、再度アカウント名とパスワード入力してください。
ZIPフォルダーの編集で保存されたパスワード非表示にする
チェックすると保存されたパスワードは空白になりますので、再度パスワード入力してください。
同期タスク編集で「パスワードを表示する」ボタンを表示しない
チェックするとSMBフォルダーとZIPフォルダーを編集したときに「パスワードを表示する」を表示しません。
終了時の処理
チェックするとアプリ終了時にプロセスをKillします。
バッテリー最適化画面を表示します。
SMBSync3を強制的に終了します。(内部的には自身のPIDをKillします)
システム情報を表示します。
機能概要、プライバシーポリシーと変更履歴を表示します。
アプリケーションからアクションにcom.sentaroh.android.SMBSync3.ACTION_START_SYNCを指定したインテント発行することにより同期を開始できます。
IntentのExtraで同期するタスクを指定することができます。Extraが指定されていないときは自動同期タスクを同期します。
コード例1(同期タスクtest1とtest2を起動する)
Intent in=new Intent("com.sentaroh.android.SMBSync3.ACTION_START_SYNC");
String prof= "test1,test2";
in.putExtra("SyncProfile", prof);
startActivity(in);
コード例2(全ての自動同期タスクを起動する)
Intent in=new Intent("com.sentaroh.android.SMBSync3.ACTION_START_SYNC");
startActivity(in);
Action :System -> Send intent
Action:com.sentaroh.android.SMBSync3.ACTION_START_SYNC
Extra:SyncProfile:prof1, prof2
Target:Activity
サンプルタスク
https://drive.google.com/open?id=12fYVpAYVax0RTKXmAtcbNrxcFKnTHocs
アプリケーションからアクションにcom.sentaroh.android.SMBSync3.ACTION_QUERY_SYNC_TASKを指定したインテント発行することにより同期タスク名を取得できます。
IntentのExtraでタスクタイプ(All, Auto, Manual, Test)を指定することができます。Extraが指定されていないときは自動同期タスクだけのタスク名を応答します。
コード例1(全てのタスク名を取得)
Intent in=new Intent("com.sentaroh.android.SMBSync3.ACTION_START_SYNC");
String type= "All";
in.putExtra("TaskType", type);
startActivity(in);
タスクリストはIntentを受信してExtraデータを読み取ることにより取得できます。
コード例2(タスク名の読込)
public class MyReceiver extends BroadcastReceiver {
@Override
final public void onReceive(Context c, Intent received_intent) {
int count=received_intent.getExtras().getInt(“SYNC_COUNT”);
String list=received_intent.getExtras().getInt(“SYNC_LIST”);
}
}
Query送信:
Action :System -> Send intent
Action:com.sentaroh.android.SMBSync3.ACTION_QUERY_SYNC_TASK
Extra:TaskType:All
Target:Activity
Taskリスト受信:
Action :Intent received
Action:com.sentaroh.android.SMBSync3.ACTION_REPLY_SYNC_TASK
サンプルタスク
https://drive.google.com/open?id=149M2Ejjw8pEu2Xuf73ckbQsKSrAcmFKT
https://drive.google.com/open?id=14F2LxX_-4Iq9d3PLe6dJYq5JvF9ZvxkG
同期開始と終了時にSMBSync3からブロードキャストインテントを発行します。
開始:com.sentaroh.android.SMBSync3.ACTION_SYNC_STARTED
終了:com.sentaroh.android.SMBSync3.ACTION_SYNC_ENDED
同期開始と終了のタイミングをアプリで検知する場合はブロードキャストレシーバーでインテントを受信してください。
終了状態は下記の文字列をIntentのExtraDataに格納されます。キーはSYNC_RESULTです。
SUCCESS
ERROR
CANCEL
WARNING
サンプル
Tasker
https://drive.google.com/file/d/1JIRbLKX-2PyfmfePMPNinx9p3jAr2933/view?usp=sharing
有志の方に翻訳していただきありがとうございます。