我想构建一个Android应用程序,当设备第一次启动时,它将检测IMEI和其他设备信息,并检查是否有SIM或Not。如果有SIM卡,它将发送短信包含IMEI和其他设备信息到特定号码。
我是Android开发的新手,我很困惑,怎么做。但我必须这样做。请朋友帮忙提供示例代码......
提前致谢
答案 0 :(得分:1)
首先,您必须添加权限以在启动时启动,获取设备ID并在 AndroidManifest.xml 中发送短信。 (更多:receive bootup,permission,read imei,send 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 */
}
}
}
这是最简单的,但不是最好的方法!