我需要构建一个带有摄像头图像并将其上传到网络的应用程序,在那里进行一些处理并返回true / false。我在这方面遇到了一些问题,我们会很好地理解澄清。
1。)我的应用程序有什么方法可以知道Android摄像头捕获的图像? 我从这里(Android: BroadcastReceiver intent to Detect Camera Photo Taken?)理解的是,无论何时将图片添加到手机中,无论是通过蓝牙还是通过相机拍摄或其他方式,我们都可以知道。 任何方式都很好。 问题是,是否需要我的应用程序在后台运行以检测媒体商店中的更改?如果是这种情况我可以让我的应用程序打开相机然后捕获图像这将在功率方面更有效。
2。)可以从Android手机发送到网络的图像大小有限制吗?考虑到Android手机的内存不足等等(我是问这个b'coz我在另一个应用程序中遇到了类似的问题,我需要做一些事情,如增加亮度,对比度等。当图像大小超过10MB时,应用程序崩溃了。
“我不想重新发明轮子并浪费我的时间”:)
答案 0 :(得分:4)
1。)在Android开发中实际上有这种机制,它已经大量使用并且已经为你完成了:) 此机制称为Intent,您只需在应用程序中声明它,系统负责为您调用已注册的组件
2。)这里没有限制,但你必须小心使用后台线程或服务发送(不阻止UI线程)并处理连接超时等
是的,高效的作品不需要重新发明轮子!
答案 1 :(得分:2)
试着回答你的问题;
1)注册BroadcastReceiver并不能真正转化为让您的应用在后台全天候运行。这就像您在系统中注册您的应用程序,它将在需要时启动并通知它。只要您不在常规广播中进行电池密集型操作,您就不必担心使用这些接收器会耗尽电量。
2)没有任何限制,虽然你应该知道发送100mb,可能通过某人的3G连接,不会让任何人开心。 如果您之前的应用程序在尝试发送10MB时崩溃,您可能采用了错误的方式,例如将其作为base64字符串。我不确定你要上传什么样的服务器,但你想找到一些代码样本,用于将图像以小块的形式缓存到服务器。 另请注意,在手机上,您永远无法确定稳定的连接。