6

[設定]->[端末情報]->[アップデートの確認]に移動すると、システムアップデートの準備ができているかどうかを確認するためのチェックが開始されます。

このアクションをプログラムで実行するにはどうすればよいですか?さらに、Androidソースコードのどこでこれが発生するかを特定して、完全に確認し、理解を深めようとしています。誰か提案はありますか?

4

1 に答える 1

9

私の知る限り、プログラムでこれを行うための既知のブロードキャスト、インテント、または API はありません。

それはROMとメーカーによって異なります。

たとえば、ソニーはサービスを使用しています。このサービスでは、wifi がアクティブになると、サービスはソニーのサーバーで更新をチェックし、それを通知します。

しかし、AOSPソースについて話すとき、私はそうは思わない.

システム アップデートの最寄りのポイントは次の場所にあります。packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java

Protip : ディレクトリ内の文字列 "System update" を grep し、res/valuesバックワードを調べて、その文字列変数識別子がどこで使用されているかを見つけてください!

編集:

ブロードキャスト レシーバーの例を次に示します。

public class SystemUpdateClass extends BroadcastReceiver{
   @Override
   public void onReceive(Context context, Intent intent){
      if (intent.getAction().equals("android.settings.SYSTEM_UPDATE_SETTINGS")){
           Toast.makeText(context, 
                 "Yup! Received a system update broadcast", 
                 Toast.LENGTH_SHORT).show();
      }
   }
}

アクティビティの 内からのコード例を次に示しますonCreate

SystemUpdateClass sysUpdate = new SystemUpdateClass();
IntentFilter filter = new IntentFilter();
filter.addAction("android.settings.SYSTEM_UPDATE_SETTINGS");
registerReceiver(sysUpdate, filter);

さて、ブロードキャストがシステム署名されたアプリ専用であると私が誤解していない限り、アプリはブロードキャストを受信する必要があります...ただし、残りは演習として残されています:)

于 2012-08-06T22:23:37.297 に答える