2017-08-21 5 views
-1

私は特定の番号から特定のメッセージを受信したときに私の携帯電話をロックするためにビルドします。しかし、smsreceiver class.errorの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(); 
     } } } } 

答えて

0

SMSRecieverの代わりに、このコンテキストを使用します。

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); 
0

intent1オブジェクトを作成するためのコードの下に試してみてください。

Intent intent1 = new Intent(context, LockController.class); 
関連する問題