問題タブ [android-backup-service]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - パート 1 UI によって開始され、スリープ モードでも動作し、電話の再起動時にも開始される永続的な foreGround android サービス
Status:---
私はカラクリさんとシャラド・マスケさんの回答を等しく受け入れますが、シャラド・マスケさんはバウンティ開始後に回答するので、バウンティは彼に行くべきです。
パート 2 作成:パート 2 UI で起動し、スリープ モードでも動作し、電話の再起動でも起動する永続的な foreGround android サービス
では、回答は1 つstack overflow
だけ受け入れられます。どちらの答えも受け入れられると思いますが、どちらかを選択する必要があります (ランダムに選択しました)。
視聴者は、その努力に感謝するために、賛成/反対の回答/質問に招待されます! . 評判を補うためにカラクリの答えに賛成しました。
Scenario:---
ユーザーに開始/停止ボタンをクリックさせ、UI アクティビティからサービスを開始/停止させたい。私はUIを作ったので気にしないでください。しかし、ボタンクリックイベントのロジックだけです。
サービスを UI アクティビティにバインドしないでください。アクティビティが終了しても、サービスは引き続き実行されます。
サービスが永続的であり、いかなる場合でも停止しないように最大限の努力をしたい. 重要度の高い階層があるため、最も重みを付けて実行します。(大丈夫だと思いますか?)
ForGroundSerice
アプリのUIで停止ボタンがクリックされない限り、 Androidがメモリを再利用したとしても、停止したくない(または再起動する必要がある)。私と電話のユーザーは、両方ともそれを認識しています/認識します。サービスが最も重要です。睡眠中でも。
details= 私のアプリはいくつかの操作を行い、ユーザーが指定した時間 (通常は 15 分) スリープし、ウェイクして再度操作を実行します。これは終わらない)
必要な場合
AlarmManager
、それを実装する方法は? または他の方法?それとも、操作をwhile loop and sleep for 15 minuts
最後に終わりのないものにするだけですか?サービスが開始されたとき (開始ボタンをクリックして)。電話が再起動した場合に自動起動するようにエントリを作成する必要があります。
QUESTION:---
Primary Question:
シナリオに最適な戦略を得ることができません...そして、どのコードをどのように使用するかという小さなコードにもこだわっています。
stackoverflow.com の質問、developer.android.com、およびいくつかの Google の結果から小片を収集しましたが、統合して実装することはできません。
リクエストセクションをお読みください。
Secondary Question:
私のコードのコメントは、それらの小さな質問です。
Research and Code:---
ストラテジー:
サービスを開始/停止するアクティビティ UI クラス:
サービス クラス:
メニフェスト ファイル:
References:---
Android - サービスの startForeground を実装していますか? ポインティング回答 1、コード例。
http://developer.android.com/guide/components/services.html
http://developer.android.com/reference/android/app/Service.html
http://developer.android.com/training/run-background-service/create-service.html私は好まない。
http://developer.android.com/guide/components/processes-and-threads.html私の研究の出発点
Requests:---
この質問は、サービスを扱っているほとんどの人にとって普通のことだと思います。そのビジョンでは、シナリオの経験があり、完全版として最大のサンプルコードで側面と戦略を包括的に説明できる場合のみ回答してください。コミュニティにも役立ちます。
彼らの意見、時間、経験を共有し、私とコミュニティを助けてくれた私にとって重要なので、回答に(責任を持って)上下に投票してください.
android - 複数のデバイスでの Android バックアップ
更新: OK、10 時間が経過したので、両方のデバイスで同じコードを再度実行しています。驚くべきことに、バックアップと復元の操作が正常に実行されているようです。今日は私にとって良い日になるに違いない。
バックアップと復元のシナリオを再現するために使用した手順は次のとおりです。
1) Eclipse でリリース キーを使用してバックアップ アプリの APK をエクスポートしました。
2) Desire S と Galaxy S2 の両方でバックアップ アプリをアンインストールしました。
3) バックアップを無効にしてから再度有効にして、両方のデバイスのすべてのバックアップ データを消去しました。
4) Desire S を USB デバッグに接続し、「adb shell bmgr list sets」で自分のアカウントに復元セットが保存されていないことを確認しました。
4) USB から Desire S を取り外し、バックアップ アプリをインストールしました。
5) backupmanager.datachanged() メソッドを呼び出すバックアップ アプリを実行します。
6) USB デバッギングで Desire S を接続し、「adb shell bmgr run」を実行してバックアップ操作を強制的に開始しました。
7) 「adb shell bmgr list sets」で復元セットが作成されていることを確認しました。
8) Galaxy S2 にバックアップ アプリをインストールすると、Desire S で作成されたバックアップが自動的に復元されます。
特にバックアップ操作を強制していない場合は、この手順を確実に再現できるかどうかをさらにテストします。
Android デバイス上の小さなファイルをバックアップおよび復元できる単純なバックアップ プログラムを作成しています。必要なものはほぼすべて完了しており (カスタム BackupAgent の作成など)、バックアップと復元の操作は同じデバイスでスムーズに実行されます。
しかし、2 つのデバイス間でバックアップと復元を実行しようとすると、つまり、1 つのデバイスでバックアップを行い、別のデバイスで復元しようとすると、復元操作は単純に失敗しました。作成したバックアップを認識しませんでした。次に、両方のデバイスで同じファイルをバックアップおよび復元しようとしました (ただし、ファイルの内容は異なります)。2 つのデバイスが個別にバックアップと復元を行うことがわかりました。
Android の BackupManager サービスは、デバイス上のデータをバックアップし、ユーザーが別のデバイスに変更したときに復元することを目的としていることを読みました。このプロセスには、明らかに 2 つの異なるデバイスが含まれます。バックアップと復元機能が 2 つのデバイス間で機能しないのはなぜですか?
thisやthisなど、私のものと同様の質問が複数あることを認識しています。残念ながら、私にとって有用な回答が含まれているとは思いません。
Android BackupManager サービスを使用して、複数のデバイスでバックアップおよび復元できるアプリの作成に成功した人がいるかどうか教えてください。
PS 参考までに、2 つのデバイスは HTC Desire S (Android 2.3.5) と Samsung Galaxy S2 i9100 (Android 4.1.2) です。どちらも最新の公式在庫 ROM を実行します。もちろん、それらは同じ Google アカウントで有効化されています。
どうもありがとうございました。
android - 暗号化された値を AndroidManifest に保存する
Android Backup Serviceにサインアップし、AndroidManifest.xml に入れるキーを受け取りました。私のアプリケーションはオープン ソースですが、リポジトリでキーを公開したくありません。アプリケーションでのみ復号化できるように、キーを暗号化するにはどうすればよいですか?
android - クラウド経由で Android 上のアプリのデータをバックアップする方法は?
バックグラウンド
作業中のアプリの設定やその他の値を保存して復元したいと考えています。
問題
結局のところ、Android には「 BackupAgent 」と呼ばれる優れた機能が既に備わっています。
ただし、すべてのデバイスでサポートされているわけではないようです。
データのバックアップは、すべての Android 搭載デバイスで利用できるとは限りません
これは API の問題ではなく (2.2 からのみサポートされています)、メーカー/キャリアの問題です:
バックアップ トランスポートは、Android のバックアップ フレームワークのクライアント側コンポーネントであり、デバイス メーカーやサービス プロバイダーによってカスタマイズ可能です。バックアップ トランスポートはデバイスごとに異なる場合があり、任意のデバイスで使用できるバックアップ トランスポートはアプリケーションに対して透過的です。バックアップ マネージャ API は、特定のデバイスで利用可能な実際のバックアップ トランスポートからアプリケーションを分離します。アプリケーションは、基礎となるトランスポートに関係なく、API の固定セットを介してバックアップ マネージャと通信します。
質問
Android のデータをクラウドに保存および復元するための無料の代替手段はありますか?
android - クラウドからのアプリ データのバックアップおよび復元中にクラッシュする
次のリンクhttp://developer.android.com/training/cloudsync/backupapi.htmlにアクセスして、アプリ データを Google サーバーに同期します。ドキュメントに記載されているすべての手順を実行します。しかし、データを復元しようとするたびにクラッシュします。私が書いたコードを以下に示します。
マニフェスト ファイル
**BackUpAgent クラス**
BackUpAvtivity クラス
このクラス内には、バックアップ用と復元用の 2 つのボタンがありました。各ボタン内のコードは次のとおりです。
クラッシュレポート
android - Android 4.3 で作成された暗号化されたバックアップは、4.4 では復元できません
バックアップの復元に関する問題
adb backup
(パスワードを指定) を使用して 4.3 で暗号化されたバックアップを作成します。- 4.4 での復元を試みる
- サイレント モードで復元が失敗します。
以下のエラーを表示:
次の場合でも、パスワードは正しくないと見なされます。
W/BackupManagerService(774): 復元データが無効です。中止しています。
android - BackupAgentHelper がデータをバックアップしない
この単純な作業は、私にとって悪夢に変わりました。
バックアップをリクエストするとき adb shell bmgr backup my.package adb shell bmgr run を実行しています
しかし、cmd行でメッセージを受け取りませんが、logcatでこれを受け取ります: 12-22 20:44:46.781: V/BackupServiceBinder(21443): doBackup() invoked 12-22 20:44:46.786: D/ BackupHelperDispatcher(21443): 新しいヘルパー 'mybackup' の処理
アプリを再インストールしても、復元されたという兆候はありません。adb shell bmgr restore my.package を呼び出すと、
cmd は次のテキストを表示します: restoreStarting: 2 packages restoreFinished: 0 done
どちらも1つのライブラリから継承するアプリのプロバージョンとライトバージョンでバックアップを使用しています。それらはすべて、マニフェストに backupagent クラスがあり、allowbackup が true に設定されており、バックアップ キーのメタ データ タグもそこにあります。
ああ、最後に、私のクラス:
私は何を間違っていますか?デフォルトの共有設定をバックアップして復元しようとしています。