我正在做一个应用程序,我需要从我的应用程序调用“com.android.settings.DeviceAdminAdd”。如何在我的应用程序中调用此类。我的代码是这样的,但它无法正常工作
Intent intent = new Intent();
intent.setClassName("com.android.settings", "com.android.settings.DeviceAdminAdd");
startActivity(intent);
事先提前
答案 0 :(得分:1)
而不是使用setClassName
使用setComponent
,如下所示
Intent intentDeviceTest = new Intent("android.intent.action.MAIN");
intentDeviceTest.setComponent(new ComponentName("com.intent.service",
"com.intent.service.InentServiceDemoActivity"));
startActivity(intentDeviceTest);
答案 1 :(得分:1)
在清单文件中设置DeviceAdminAdd活动属性exported = true。并致电如下:
Intent intent = new Intent(com.android.settings.this, com.android.settings.DeviceAdminAdd.class);
startActivity(intent);
答案 2 :(得分:1)
...试
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
startActivity(intent);
来自文档...
答案 3 :(得分:1)
我现在已经尝试过这段代码,但是它有效,它会打开AddAccount Activity
:
Intent intent = new Intent(Settings.ACTION_ADD_ACCOUNT);
startActivity(intent);
问候, Houcine
答案 4 :(得分:0)
请试试这个,
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
startActivity( LaunchIntent );
答案 5 :(得分:0)
试试这个(请注意第1行不同):
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.android.settings", "com.android.settings.DeviceAdminAdd");
startActivity(intent);
如果由于某种原因它不起作用另一个(更好的)选项是使用PackageManager来获取包的Intent:
PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("com.android.settings");
startActivity(intent);
答案 6 :(得分:0)
你可以阅读这段代码
public class CurrentActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intent=new Intent(this,TargetActivityName.class);
this.startActivity(intent);
}
}
答案 7 :(得分:0)
所有答案都是正确的。但是,您应该从不按包名取消来定位应用程序它是您的应用程序。如果您遵循此模式,这将导致将来版本出现问题。