我该如何使用Intent?

时间:2017-08-21 10:35:20

标签: android android-intent locking sms

当我收到来自特定号码的特定消息时,我构建此应用程序以锁定我的手机。但是Smsreceiver类中的intent1存在问题。错误是:"无法解析构造函数意图" 这是我的SMSReceiver类:

 public class SMSReceiver extends BroadcastReceiver {


@Override
public void onReceive(Context context, Intent intent) {

    Bundle bundle=intent.getExtras();
    if(bundle!=null){
        Object[] objects=(Object[])bundle.get("pdus");
        for (int i=0;i<objects.length;i++){
     SmsMessage smsMessage=SmsMessage.createFromPdu((byte[])objects[i]);

            String message=smsMessage.getDisplayMessageBody();
            String number=smsMessage.getOriginatingAddress();


       /*Whats wrong with the line below? */


         Intent intent1 = new Intent(SMSReceiver.this,LockController.class);
            intent1.putExtra("message",message);
            intent1.putExtra("number",number);
            startActivity(intent1);
      } } } }

这是LockController类:

  public class LockController extends DeviceAdminReceiver {

   public static class Controller extends Activity {


    public   DevicePolicyManager mDPM;
    public ComponentName mDeviceAdminSample;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

mDPM=(DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
mDeviceAdminSample=new ComponentName(Controller.this,LockController.class);

Intent intent=new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,mDeviceAdminSample);

        Intent intent1 = getIntent();
        String message = intent1.getExtras().getString("message");
        String number = intent1.getExtras().getString("number");


     Toast.makeText(G.context,number+":"+message,Toast.LENGTH_SHORT).show();

        if (number=="+989016711390" && message=="salam"){
            mDPM.lockNow();
        } } } }

2 个答案:

答案 0 :(得分:0)

尝试以下代码来创建intent1对象:

Intent intent1 = new Intent(context, LockController.class);

答案 1 :(得分:0)

而不是SMSReciever.this使用上下文。

 Intent intent1 = new Intent(context ,LockController.class);
 intent1.putExtra("message",message);
 intent1.putExtra("number",number);
 //This is for if our application is not running
 intent1.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK);
 context.startActivity(intent1);
相关问题