2017-09-25 81 views
0

我正在尝试将连接到运行Nagios的Linux服务器的Android手机发送到正在监视的系统停机时发送短信。从连接到Linux的Android手机发送短信

手机上的Android版本是7(没有root)。我在Linux电脑上安装了adb,手机通过USB电缆连接。

我试图用下面的代码:

adb shell am start -a android.intent.action.SENDTO -d sms:$mobile_number --es sms_body $sms_text --ez exit_on_sent true 
adb shell input keyevent 22 
adb shell input keyevent 66 

它正常工作了一段时间,并沿着它停止工作的方式的某处。它键入消息,我可以在手机的屏幕上看到但无法发送。

当我在命令行手动运行命令我得到类似的错误:

“警告:活动尚未开始,其当前任务已提请 前”

我想知道是否有更好的方式从Linux计算机发送短信?如果需要,我可以在手机上安装合适的应用程序,我只需要一种可靠的方法。

+0

我会建议添加的每个命令之间的停顿......至少2秒......也许,的KeyEvents运行而活动并没有完全建立和KeyEvent的不如你所愿处理 – W0rmH0le

回答

0

有一个解决方案,但你将不得不创建自己的应用程序(非常非常简单)。

创建一个新的应用程序,此代码复制粘贴到在MainActivity的onCreate()方法:

if(getIntent()!=null && getIntent().getExtras()!=null){ 
    String number = getIntent().getStringExtra("number"); 
    String message = getIntent().getStringExtra("message"); 

    SmsManager manager = SmsManager.getDefault(); 
    manager.sendTextMessage(number, null, message, null, null); 
} 

建立和您的手机上安装的应用程序。那么只需做到这一点:

adb shell am start -n "com.example.your_app/.MainActivity" -e number XXXXXXXXXX -e message "Hello World !"