使用后台服务发送短信并通过短信发送IMEI号码

时间:2015-06-28 16:49:31

标签: android service broadcastreceiver smsmanager

我想构建一个Android应用程序,当设备第一次启动时,它将检测IMEI和其他设备信息,并检查是否有SIM或Not。如果有SIM卡,它将发送短信包含IMEI和其他设备信息到特定号码。

我是Android开发的新手,我很困惑,怎么做。但我必须这样做。请朋友帮忙提供示例代码......

提前致谢

1 个答案:

答案 0 :(得分:1)

首先,您必须添加权限以在启动时启动,获取设备ID并在 AndroidManifest.xml 中发送短信。 (更多:receive bootuppermissionread imeisend sms

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.SEND_SMS" />

然后,您必须在 AndroidManifest.xml 中将广播接收器组件添加到您的应用程序。

<receiver android:name=".BootReceiverMessageSender">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <action android:name="android.intent.action.QUICKBOOT_POWERON" />
        <category android:name="android.intent.category.NONE" />
    </intent-filter>
</receiver>

之后,您需要创建java类。

class BootReceiverMessageSender extends BroadcastReceiver {
    private static final String DESTINATION_NUMBER="+..."; /* phone number */
    @Override
    public void onReceive(Context c, Intent i) {
        TelephonyManager tm = (TelephonyManager) c.getSystemService(Context.TELEPHONY_SERVICE); /* get a TelephonyManager instance */
        String deviceId = tm.getDeviceId(); /* get the id of device (gsm: imei, cdma: meid / esn) */
        if(deviceId != null) { /* check if not null */
            SmsManager smsManager = SmsManager.getDefault(); /* get a SmsManager instance */
            smsManager.sendTextMessage(DESTINATION_NUMBER, null, "My ID: " + deviceID, null, null); /* Send SMS */
        }
    }
}

这是最简单的,但不是最好的方法!