我应该如何使用 Intent?
How should I use Intent?
我构建此应用程序是为了在收到来自特定 number.but 的特定消息时锁定我的 phone Smsreceiver class.error 中的 intent1 有问题是:"cannot resolve constructor intent"
这是我的 SMSReceiver class:
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 class:
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();
} } } }
尝试使用以下代码创建 intent1
对象:
Intent intent1 = new Intent(context, LockController.class);
而不是 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);
我构建此应用程序是为了在收到来自特定 number.but 的特定消息时锁定我的 phone Smsreceiver class.error 中的 intent1 有问题是:"cannot resolve constructor intent" 这是我的 SMSReceiver class:
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 class:
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();
} } } }
尝试使用以下代码创建 intent1
对象:
Intent intent1 = new Intent(context, LockController.class);
而不是 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);