Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
扩展android应用程序_Android_Components - Fatal编程技术网

扩展android应用程序

扩展android应用程序,android,components,Android,Components,我想创建一个与默认相机应用程序相同的应用程序,只需进行一个小的修改(即禁用视频或添加额外功能)。我该怎么做 我是否只是获取摄像头应用程序的源代码并对其进行修改,还是有办法扩展Android系统的核心组件?bizso99 您可以从您的活动调用意图,该活动就是摄像头SAN视频功能,如下所示: public void imageFromCamera() { Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");

我想创建一个与默认相机应用程序相同的应用程序,只需进行一个小的修改(即禁用视频或添加额外功能)。我该怎么做

我是否只是获取摄像头应用程序的源代码并对其进行修改,还是有办法扩展Android系统的核心组件?

bizso99

您可以从您的
活动
调用
意图
,该活动就是摄像头SAN视频功能,如下所示:

public void imageFromCamera() {
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    startActivityForResult(intent, TAKE_PICTURE);
}
这将返回图像的较小缩略图版本。如果您想要全尺寸,则需要使用Mediastore.EXTRA_输出,如下所示:

public void imageFromCamera() {
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    mImageFile = new File(pathToStoreImage);  //file where image will be stored
    mSelectedImagePath = mImageFile.getAbsolutePath();  //path to file where image will be stored
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mImageFile));
    startActivityForResult(intent, TAKE_PICTURE);
}

然后你可以在
onActivityResult()中接收图片

Android是开源的,因此你可以下载Android中每个股票应用的源代码(而不是像地图这样的谷歌应用)。事实上,您可以从下载最新的原始相机应用程序。只有下载整个android源代码,才能构建apk。有关如何构建android源代码的概述,请参阅。您可以根据需要修改源


我很确定,如果不复制源代码,就不可能扩展camera应用程序,因为camera api没有插件api(或类似插件)。

我明白了,有没有办法在保留所有现有功能的同时,向默认系统camera应用程序添加新功能,并将其作为一个名为“camera plus”的独立应用程序进行演示?我不相信这种方法可以实现,除非您计划只进行后期图像处理。否则,您必须挂接摄像头并在自己的
画布上显示流
对象,并使用
摄像头类
手动处理所有内容。实际上,您可以使用apktool修补二进制文件。对于不适合SDK应用程序的内置程序,因此只能在平台构建的上下文中编译,我有时觉得这是值得的。如果我不能直接在dalvik代码中找出更改,我会在更改周围获得一小块源代码,用于在sdk下编译(通过删除私有函数等),然后将其用作指导/剪切粘贴源代码来修改dalvik代码。