6

私が始める前に、これは私たち自身のアンドロイドベースのデバイスのためのものであり、電話や他の場所への展開のためのものではありません。

init.rcには、postgresqlデータベースサーバーであるサービスがあります。これは起動時に起動し、常にシステムのバックグラウンドで実行されます。ただし、閉鎖される可能性がありますので、システムのAndroid側からこのサービスを停止して開始する方法が必要です。

Androidアクティビティからinitstartコマンドを送信する方法はありますか?ルートシェルからは、これは「startservicename」と「stopservicename」を実行するのと同じです。

4

1 に答える 1

12

init.rcファイルで宣言されているサービスを開始するには、次のコマンドで「ctl.start」システムプロパティを変更する必要があると思います。

cファイル:

property_set("ctl.start", "<service_name>");

Javaの場合:

SystemProperties.set("ctl.start", "<service_name>");

これは、アクティビティにシステム権限があることを意味します(マニフェスト内):

android:sharedUserId="android.uid.system"

システムキーによって署名されています(またはAndroid.mkにプラットフォームを配置します)

ご想像のとおり、サービスを停止するには、次のコマンドを使用します。

property_set("ctl.stop", "<service_name>");

また

SystemProperties.set("ctl.stop", "<service_name>");
于 2013-05-29T14:41:03.040 に答える