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

如何在android中从一个应用程序调用另一个应用程序,android,Android,我正在做一个应用程序,我需要从我的应用程序中调用“com.android.settings.deviceadmin”。如何在我的应用程序中调用此类。我的代码是这样的,但它不工作 Intent intent = new Intent(); intent.setClassName("com.android.settings", "com.android.settings.DeviceAdminAdd"); startActivity(intent); 提前thx请试试这个 Intent Launc

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

Intent intent = new Intent();
intent.setClassName("com.android.settings", "com.android.settings.DeviceAdminAdd");
startActivity(intent);
提前thx请试试这个

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
startActivity( LaunchIntent );
请试试这个

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
startActivity( LaunchIntent );
请尝试以下方法(注意第1行不同):

如果由于某种原因无法工作,另一个(更好的)选项是使用PackageManager来获取软件包的意图:

PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("com.android.settings");
startActivity(intent);
请尝试以下方法(注意第1行不同):

如果由于某种原因无法工作,另一个(更好的)选项是使用PackageManager来获取软件包的意图:

PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("com.android.settings");
startActivity(intent);

不要使用
setClassName
而是使用
setComponent
,如下所示

Intent intentDeviceTest = new Intent("android.intent.action.MAIN");  
intentDeviceTest.setComponent(new ComponentName("com.intent.service",
                                 "com.intent.service.InentServiceDemoActivity"));
startActivity(intentDeviceTest);

不要使用
setClassName
而是使用
setComponent
,如下所示

Intent intentDeviceTest = new Intent("android.intent.action.MAIN");  
intentDeviceTest.setComponent(new ComponentName("com.intent.service",
                                 "com.intent.service.InentServiceDemoActivity"));
startActivity(intentDeviceTest);

在清单文件中设置DeviceAdminAdd活动属性exported=true。电话如下:

Intent intent = new Intent(com.android.settings.this, com.android.settings.DeviceAdminAdd.class);
startActivity(intent);

在清单文件中设置DeviceAdminAdd活动属性exported=true。电话如下:

Intent intent = new Intent(com.android.settings.this, com.android.settings.DeviceAdminAdd.class);
startActivity(intent);

您可以阅读此代码

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

    }
}

您可以阅读此代码

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

    }
}
试试看

从文件中

试试

Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
startActivity(intent);
从文件中


所有的答案都是正确的。但是,除非是您的应用程序,否则您应该永远不要按包名以应用程序为目标。如果您遵循此模式,这将导致未来版本出现问题。

所有答案都是正确的。但是,除非是您的应用程序,否则您应该永远不要按包名以应用程序为目标。如果您遵循此模式,这将导致将来的发行版出现问题。

我现在已经尝试了此代码,它可以正常工作,它将打开
添加帐户活动

Intent intent = new Intent(Settings.ACTION_ADD_ACCOUNT);
        startActivity(intent);
问候,,
Houcine

我现在已经尝试了这个代码,它可以工作,它会打开
添加帐户活动

Intent intent = new Intent(Settings.ACTION_ADD_ACCOUNT);
        startActivity(intent);
问候,,
Houcine

你说的“它不起作用”是什么意思?它有错误吗?没有错误。但我无法启动setting/DeviceAdminAdd活动。您所说的“它不工作”是什么意思?它有错误吗?没有错误。但我无法启动setting/DeviceAdminAdd activity.Window已聚焦,忽略了:com.android.internal.view.IInputMethodClient$Stub的聚焦增益$Proxy@405f2dd0. 在logcatWindow中获取此消息已聚焦,忽略:com.android.internal.view.IInputMethodClient$Stub的聚焦增益$Proxy@405f2dd0. 在logcatno permission中获取此消息不需要权限,我已经尝试过,对我有效您应该从以下位置导入设置:android.providerno permission,我已经尝试过,对我有效您应该从以下位置导入设置:android.Provider使用此代码,启动应用程序的多个实例。我已尝试在应用程序的启动活动中使用启动模式启动单个实例,但应用程序仍在多个实例中打开。如何解决此问题。使用此代码,启动应用程序的多个实例。我已尝试在应用程序的启动活动中使用启动模式启动单个实例,但应用程序仍在多个实例中打开。我如何解决此问题。