2

我需要构建一个应用程序来获取相机图像并将其上传到要进行一些处理并返回真/假的网络。我在这方面遇到了一些问题,如果能得到澄清,我将不胜感激。

1.) 我的应用程序有什么方法可以知道 android 相机正在捕获的图像吗?我从这里了解到(Android:BroadcastReceiver intent to Detect Camera Photo Taken?)是我们可以知道何时将图片添加到手机中,无论​​是通过蓝牙还是通过相机捕获或其他方式。任何方式都很好。问题是不需要我的应用程序在后台运行以检测媒体商店的变化吗?如果是这种情况,我可以让我的应用程序打开相机,然后捕捉图像,这在功率方面会更有效。

2.)可以从安卓手机发送到网络的图像大小是否有任何限制?考虑到 android 手机的 RAM 较少等。(我问这个 b'coz 我在另一个应用程序中遇到了类似的问题,我需要做一些事情,比如增加亮度、对比度等。当图像大小时应用程序崩溃了大于 10MB)。

“我不想重新发明轮子并浪费我的时间”:)

4

2 回答 2

4

1.) 在 Android 开发中有效地存在这种机制,它已经被大量使用并且已经为你完成了:) 这种机制称为Intent,你只需要在你的应用程序中声明它,系统会负责调用你注册的组件你

2.)这里没有限制,但你必须小心使用后台线程或服务发送它(不阻塞 UI 线程)并处理连接超时等

是的,高效的工作不需要重新发明轮子!

于 2013-06-12T07:09:03.573 回答
2

尝试回答您的问题;

1) 注册 BroadcastReceiver 并不能真正转化为让您的应用程序在后台 24/7 运行。这就像你在系统中注册你的应用程序,它会在需要时启动并通知它。只要您不在非常常规的广播中做耗电的事情,您就不必担心拥有这些接收器会耗尽电池。

2)实际上并没有任何限制,尽管您应该知道发送 100mb(可能通过某人的 3G 连接)不会让任何人开心。如果您以前的应用程序在尝试发送 10MB 时崩溃,您可能以错误的方式将其设为 base64 字符串。我不确定您要将它上传到哪种服务器,但您想找到一些代码示例,将图像以小块的形式缓冲到服务器。另请记住,在手机上,您永远无法确定稳定的连接。

于 2013-06-12T07:04:58.700 回答