如何在android中调用另一个应用程序

时间:2012-02-02 10:05:22

标签: android

我正在做一个应用程序,我需要从我的应用程序调用“com.android.settings.DeviceAdminAdd”。如何在我的应用程序中调用此类。我的代码是这样的,但它无法正常工作

Intent intent = new Intent();
intent.setClassName("com.android.settings", "com.android.settings.DeviceAdminAdd");
startActivity(intent);
事先提前

8 个答案:

答案 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);

来自文档...

DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN

答案 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)

所有答案都是正确的。但是,您应该从不按包名取消来定位应用程序它是您的应用程序。如果您遵循此模式,这将导致将来版本出现问题。