在Service里为什么发不到短信

郎里个郎里个郎 发布于 2013/04/29 19:39
阅读 303
收藏 0

本来我是想在广播接收者里写一个开机自动发送短信的代码  不过在安卓4.0中不能直接这么做   于是我就从广播接收者里跳转到一个服务里执行 

import android.annotation.SuppressLint;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.IBinder;
import android.telephony.SmsManager;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.Toast;
//这是一个Service类用来实现开机自动发送短信
public class SafeMainSer extends Service {
private SharedPreferences spf;
    public IBinder onBind(Intent arg0) {
        return null;
    }
    @SuppressLint("UnlocalizedSms")
    public void onCreate() {
        super.onCreate();
        TelephonyManager             manager=    (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
        String currentsim =  manager.getSimSerialNumber();    
        spf=getSharedPreferences("config", MODE_PRIVATE);
        String oldsim = spf.getString("phone", null);
        boolean status = spf.getBoolean("guide", false);
        //如果用户设置过向导
        if(status){
            //并且老的sim卡不等于现在的sim卡则进行下面的操作
            if(!oldsim.equals(currentsim)){
            //获得短信发送器
            SmsManager sms = SmsManager.getDefault();
            String num = spf.getString("phone", null);
            sms.sendTextMessage(num, null, "你好", null, null);
            Toast.makeText(getApplicationContext(), "你好", 1).show();
            Log.i("sat", "发送短信完毕");
            }
        }
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return START_STICKY;
    }
}

重启机器发现吐司能打印  并且log也能显示  但就是不能发送短信 

下面是广播接收者的代码:

public class SafeMain01 extends BroadcastReceiver {
    private SharedPreferences spf;
    @Override
    public void onReceive(Context context, Intent intent) {
            Intent smsIntent=new Intent(context,SafeMainSer.class);
            context.startService(smsIntent);
    }

}


加载中
返回顶部
顶部