我试图做一个简单的应用程序,它会将用户发送到特定的(系统安装)应用(系统设置,日历,浏览器等)时,从主屏幕或应用程序的抽屉,用户点击。
例如,目前我正在试图打开每当我的应用程序启动的系统设置,就像对于设置的快捷操作。
是否有可能实现这个我想要的方式? 有没有人有什么建议?
这里是我的代码:
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
public class MainActivity extends Activity {
public void LaunchComponent (String packageName, String name){
Intent i = new Intent(Intent.ACTION_MAIN);
PackageManager manager = getPackageManager();
i = manager.getLaunchIntentForPackage("com.sec.android.app.controlpanel");
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
}
}
我目前还没有一个布局文件,如main.xml中,在我的应用程序,因为它没有任何UI或布局元素。 它所应该做的是向用户发送到另一个应用程序的活动。 我一直在使用本教程(缺少链接),我实现所有的代码示例,我无法弄清楚,我是新的android开发和Java是不是我的最好的语言。 打开任何的批评或建议。
你必须要调用LaunchComponent可以在第一的onCreate生命周期的回调函数来完成
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LaunchComponent (packageName, name);
}
更新
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
public class MainActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LaunchComponent ("com.sec.android.app.controlpanel", "abc?");
}
public void LaunchComponent (String packageName, String name){
Intent i = new Intent(Intent.ACTION_MAIN);
PackageManager manager = getPackageManager();
i = manager.getLaunchIntentForPackage(packageName);
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
}
在这个例子中,你可以打开系统的闹钟应用,希望有帮助,例如活动:
public class TestActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PackageManager packageManager = this.getPackageManager();
if (packageManager != null) {
Intent AlarmClockIntent =
new Intent(Intent.ACTION_MAIN).addCategory(
Intent.CATEGORY_LAUNCHER).setComponent(
new ComponentName("com.android.deskclock", "com.android.deskclock.DeskClock"));
ResolveInfo resolved = packageManager.resolveActivity(AlarmClockIntent, PackageManager.MATCH_DEFAULT_ONLY);
if (resolved != null) {
startActivity(AlarmClockIntent);
finish();
return;
} else {
// required activity can not be located!
}
}
}
}