2012-04-12 19 views
-2

私はユーザ名とパスワードを必要とするアンドロイドのアプリケーションを持っています。私のサーバはSMSを使ってユーザ名とパスワードをモバイルに送ります。AndroidアプリケーションSMSからユーザ名とパスワードを取得

アプリケーションでSMSを読み取る方法を探していましたが、手動で設定するのではなく、設定でユーザー名とパスワードを使用して自動的に設定できます。

答えて

2

のAndroidManifest.xml

<uses-permission android:name="android.permission.RECEIVE_SMS" /> 

<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > 
    <receiver android:name=".Receiver" > 
     <intent-filter > 
      <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
     </intent-filter> 
    </receiver> 
</application> 

Receiver.java

に示すべきではないことをしたい場合でも、abortBroadキャストメソッドを使用します
import java.util.ArrayList; 
import android.content.Context; 
import android.content.Intent; 
import android.content.BroadcastReceiver; 
import android.os.Bundle; 
import android.telephony.SmsManager; 
import android.telephony.SmsMessage; 

public class Receiver extends BroadcastReceiver  
{ 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     //---get the SMS message passed in--- 
    Bundle bundle = intent.getExtras();   
    SmsMessage[] msgs = null;   
    if (bundle != null) 
    { 
     //---retrieve the SMS message received--- 
     Object[] pdus = (Object[]) bundle.get("pdus"); 
     msgs = new SmsMessage[pdus.length];    
     for (int i=0; i<msgs.length; i++) 
     { 
     msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);     

     checkSMS(context, msgs[i]); 
     } 
    } 
    } 

    void checkSMS(Context context, SmsMessage sms) 
    { 
    String msg = sms.getMessageBody().toString(); 

    } 

} 
+0

私はこれを以下のように呼んでいます。一度だけ実行され、20秒以上生きていません。メッセージは20秒以内に送信されます。少なくとも20秒間聴き続ける必要があります。 \t 'sms.sendTextMessage(" XXXXXX "、null、" MSG "、null、null); レシーバrc =新しいレシーバ(); rc.onReceive(getContext()、新しいインテント( "android.provider.Telephony.SMS_RECEIVED")); ' – AAB

+0

私はあなたが何を意味するのか理解できませんでしたが、あなたが何か間違っていると思う、新しいReceiverクラスを呼び出し、rc.onreceiveを呼び出します。私があなたに与えたサンプルとしてReceiver.javaを作成し、私の答えに書いたようにこのクラスをマニフェストに追加します。電話が誰かからSMSを受け取るたびに、アンドロイドのテレフォニーフレームワークはあなたのアプリケーションをReceiverクラスのOnReceiveメソッドと呼びますが、アプリケーションが開いていなくても。チェックサム機能で何でもできます。 –

1

SMSのブロードキャストリスナーを使用しています.RCVチェックでは、サーバーがSMSを送信するために使用している番号から来た場合はSMSテキストから情報を抽出し、それに従ってアプリの設定を更新しますあなたはSMSネイティブSMSアプリ

+0

こんにちは、サンプルコードを上に表示していただけますか? – AAB

+0

は、SMSを受信する最も簡単なコードhttp://androidsourcecode.blogspot.com/2010/10/receiving-sms-using-broadcastreceiver.htmlとこのリンクも良好な詳細http://boomtech.in/entries/general/ sms-toast - using-broadcast-receiver ---連絡先情報を取得する –

関連する問題