0

.javaファイルは次のとおりです。packagesms1.android.pkg; インポートjava.io.OutputStreamWriter; インポートjava.net.HttpURLConnection; java.net.URLをインポートします。インポートjava.net.URLConnection; java.net.URLEncoderをインポートします。import android.content.BroadcastReceiver; android.content.Contextをインポートします; import android.content.Intent; android.os.Bundleをインポートします。android.telephony.SmsMessageをインポートします;

public class Sms1Activity extends BroadcastReceiver {
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
public void onReceive(Context _context, Intent _intent) {
    if (_intent.getAction().equals(SMS_RECEIVED)) {
    Bundle bundle = _intent.getExtras();
    if (bundle != null) {
    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 msg = message.getMessageBody();
    String to = message.getOriginatingAddress();

    try {
    // Construct data 
    String data = URLEncoder.encode("test", "UTF-8") + "=" + URLEncoder.encode(msg, "UTF-8");
    data = data +"&"+ URLEncoder.encode("mobile", "UTF-8") + "=" + URLEncoder.encode(to, "UTF-8");  
    // Send data
    URL url = new URL("http://www.medibeep.in/xyz.php");
    URLConnection conn = url.openConnection();
    HttpURLConnection httpConnection = (HttpURLConnection)conn;
    conn.setDoOutput(true);
    OutputStreamWriter wr = new      OutputStreamWriter(httpConnection.getOutputStream());
    wr.write(data);
    wr.flush();
    wr.close();
} catch (Exception e) {
}
   }
    }
    }
    }
    }

.manifestファイルは次のとおりです。

<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name="sms1.android.pkg.Sms1Activity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

エラーはまだありませんが、.apkファイルがクラッシュします。誰かが私を助けることができますか?

4

1 に答える 1

0

android.provider.Telephony.SMS_RECEIVEDAndroidManifest にレシーバーを次のように登録します。

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

<uses-permission android:name="android.permission.RECEIVE_SMS"/>
于 2012-04-07T18:04:03.280 に答える