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

标签 android service broadcastreceiver smsmanager

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

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

提前致谢

最佳答案

首先,您必须在 AndroidManifest.xml 中添加开机启动、获取设备 ID 和发送短信的权限。 (更多: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 */
        }
    }
}

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

关于android - 使用后台服务发送短信并通过短信发送 IMEI 号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31102283/

相关文章:

android - 对 Android Fragment Transaction 感到疯狂

service - 剪贴板复制粘贴在 Windows Server 2008/Vista 64 位上的服务中不起作用

java - 使用 MQTT Android 服务从飞行模式重新连接

java - Android 服务 OnStartCommand 不工作

Java.lang.RuntimeException 接收 BroadCast Intent 时出错

android - 为什么要在 BroadcastReceiver 中调用 setResult?

java - RecyclerView更新项目的文本和图标OnClick

android - 捕获运行 android 应用程序的视频,然后播放它

android - 安装 GO SMS Pro 时未调用 SMS Broadcastreceiver

android:我多久可以发送短信