Android-如何在服务和命令行之间进行通信

tir*_*dev 3 java service android

我想制作一个在后台运行的Android应用程序,从我的bash脚本接收一个字符串
应用程序使用字符串来显示带有文本的吐司,
但我不知道如何将字符串发送到应用程序,也不知道如何重新接收字符串
帮助请

ina*_*ruk 6

您可以使用Intentvia am并将其发送到您的服务.这看起来像:

adb shell am startservice -a com.yourpackage.action.name.SHOW_TOAST -e text "i did it"
Run Code Online (Sandbox Code Playgroud)

您的服务可能如下所示:

....

@Override
public void onStart(Intent intent, int startId) {
    Toast.makeText(this, "Text: " + intent.getStringExtra("text"), Toast.LENGTH_LONG).show();
}
....
Run Code Online (Sandbox Code Playgroud)

并添加下一个条目AndroidManifest.xml:

 <service  android:name="com.yourpackage.SomeService">
     <intent-filter>
            <action android:name="com.yourpackage.action.name.SHOW_TOAST" />
     </intent-filter>
 </service>
Run Code Online (Sandbox Code Playgroud)