我想做一个具有远程控制手机功能的应用程序。例如通过另一部手机的短信打开/关闭GPS。通过短信从手机获取位置。
是否可以通过其他手机的短信打开/关闭gps?
答案 0 :(得分:1)
肯定是的。
你只需要为你的应用程序添加一个动作android.provider.Telephony.SMS_RECEIVED的接收器,并解析消息文本,如果你在手机中识别ac命令,你执行一些代码。
基本上你需要做三件事:
更新您的应用程序接收短信的清单abd添加权限:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
然后,您必须在清单中再次添加接收SMS_RECEIVED操作的接收器,其方式类似于以下内容:
<receiver android:name=".SMSReceiver" android:enabled="true" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
其中android.name是Receiver类的名称。
最后你必须实现那个扩展BroadCastReceiver的类,并至少实现了onReceive方法。
public class SmsReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
}
}
为了您的帮助,下面是一个关于接收代码的示例:
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Object[] pdus = (Object[])bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdus.length];
for(int i = 0; i < pdus.length; i++){
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}
for(SmsMessage message: messages){
String messagestr = message.getMessageBody();
String sender = message.getOriginatingAddress();
Toast.makeText(context, sender + ": " + messagestr, Toast.LENGTH_SHORT).show();
}
}
该代码,阅读邮件内容并在Toast上显示。您可以在此处找到完整的工作示例:https://github.com/inuyasha82/ItalialinuxExample/tree/master/LezioniAndroid
答案 1 :(得分:0)
Android可以接收(处理)SMS-es。你的软件应该阅读短信,然后决定它是否包含命令并像普通应用程序一样关闭GPS。
此链接显示了http://www.apriorit.com/dev-blog/227-handle-sms-on-android
的方式