Android - 创建和运行快捷方式

Reg*_*Reg 4 android shortcut android-intent

这真的是两个问题.

1.我想为你创建一个菜单来创建一个快捷方式,就像下面的代码启动菜单一样,你可以用正常的方式创建一个快捷方式

Intent pickIntent = new Intent(Intent.ACTION_CREATE_SHORTCUT); 
startActivityForResult(pickIntent, 5);
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,当我使用上面的代码并检查数据时,它似乎不包含数据.我不确定我是否需要以下权限,但我还是把它放在我的清单中:

<uses-permission> android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
Run Code Online (Sandbox Code Playgroud)

我想保存用于在文件中运行快捷方式的数据,以便我可以从我的应用程序运行快捷方式.

2.我如何运行快捷代码,它基本上就像运行带有额外标志的意图等

我见过一个可以做我刚刚说过的应用程序,我已经设法查看了我在SD卡上保存的一个文件:

以下是我发现的一个例子:

Intent;action=com.sonyericsson.android.camera.action.FRONT_STILL_IMAGE_CAMERA;
component=com.sonyericsson.android.camera/.CameraActivity;
S.com.sonyericsson.camera.intent.extra.CAPTURING_MODE=front_normal;
end{[SName}]Front camera
Run Code Online (Sandbox Code Playgroud)

我肯定上面运行了一个快捷方式打开相机应用程序,准备从前置摄像头拍摄照片,但不知道如何运行它.

任何帮助深表感谢.

Reg*_*Reg 8

经过大量搜索,我找到了我要找的东西:

  1. http://www.jp-z.jp/changelog/2011-07-12-1.html - 将向您展示如何启动快捷方式以实现目标

  2. 获得意图后,您可以执行以下操作:

隐藏到字符串:

String uri = intent.toURI().ToString()
Run Code Online (Sandbox Code Playgroud)

保存在你想要的地方,文件,sqlite等

为了得到它并运行意图然后做

try {
startActivity(Intent.getIntent(uri));
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

在这里找到了解决方法:在设置中保存Intent的任何解决方法?

那么以下是什么样的

Intent;action=com.sonyericsson.android.camera.action.FRONT_STILL_IMAGE_CAMERA;
component=com.sonyericsson.android.camera/.CameraActivity;
S.com.sonyericsson.camera.intent.extra.CAPTURING_MODE=front_normal;
end{[SName}]Front camera
Run Code Online (Sandbox Code Playgroud)

在运行时应该看起来像这样:

try {startActivity(Intent.getIntent("#Intent;action=com.sonyericsson.android.camera.action.FRONT_STILL_IMAGE_CAMERA;component=com.sonyericsson.android.camera/.CameraActivity;S.com.sonyericsson.camera.intent.extra.CAPTURING_MODE=front_normal;end"));
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)