使用android设备作为遥控器

时间:2014-03-17 09:33:19

标签: android

我想做一个具有远程控制手机功能的应用程序。例如通过另一部手机的短信打开/关闭GPS。通过短信从手机获取位置。

是否可以通过其他手机的短信打开/关闭gps?

2 个答案:

答案 0 :(得分:1)

肯定是的。

你只需要为你的应用程序添加一个动作android.provider.Telephony.SMS_RECEIVED的接收器,并解析消息文本,如果你在手机中识别ac命令,你执行一些代码。

基本上你需要做三件事:

  1. 更新您的应用程序接收短信的清单abd添加权限:

    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
    
  2. 然后,您必须在清单中再次添加接收SMS_RECEIVED操作的接收器,其方式类似于以下内容:

    <receiver android:name=".SMSReceiver" android:enabled="true" >
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
    

  3. 其中android.name是Receiver类的名称。

    1. 最后你必须实现那个扩展BroadCastReceiver的类,并至少实现了onReceive方法。

      public class SmsReceiver extends BroadcastReceiver {     
      
         public void onReceive(Context context, Intent intent) {
         }
      }
      
    2. 为了您的帮助,下面是一个关于接收代码的示例:

      @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 &lt; 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

的方式