我正在Android上实现一个人脸跟踪器,作为一个文献研究,想要确定Android的FaceDetector的基础技术.
简单地说:我想了解android.media.FaceDetector分类器的工作原理.
一个简短的谷歌搜索没有提供任何信息,所以我想我会看看代码.
通过查看Java源代码,FaceDetector.java没有太多需要学习的内容:FaceDetector只是提供图像尺寸和面数的类,然后返回一个面数组.
Android源代码包含此类的JNI代码.我跟着函数调用,在那里,简化为基本要素,我学到了:
FaceFinder.c:75bbs_MemSeg_alloc返回一个btk_HFaceFinder对象(其中包含实际查找面的函数),基本上将其复制到initialize()()中初始化hsdkA->contextE.memTblE.espArrE的原始btk_HSDK对象的数组中FaceDetector_jni.cpp:145.btk_SDK_create()btk_HSDK,但我无处可寻找具体的实例,sdk->contextE.memTblE.espArrE[0]其中包含了魔法.我已经发现,是一个小线索:JNI代码引用FFTEm库,我无法找到的源代码.然而,从它的外观来看,FFT是快速傅立叶变换,它可能与预训练的神经网络一起使用.我能找到的唯一符合这一理论的文献是Ben-Yacoub等人的论文.
我甚至不知道自己是否走上了正确的道路,所以任何建议都无疑会有所帮助.
编辑:我为任何可以提供任何见解的人添加了+100赏金.
对于Internet Explorer 8(IE8),我想使用以下CSS:
color : green;
Run Code Online (Sandbox Code Playgroud)
我想应用一个只影响IE8的黑客,而不是IE9,IE6和7.
我试着通过此链接为我的应用添加三星的多窗口支持.我的应用程序确实出现在三星的多窗口应用程序选项卡中,我能够将其拖放到屏幕中,但是我的应用程序不像多窗口支持的应用程序应该表现,而是扩展到全屏.
我认为还需要做一些其他的改变才能让它正常工作,但我不知道是什么.有没有人有任何想法可能导致这种行为的问题?
我能够将最新的android源代码下载到32位的Ubuntu虚拟机中(主机:Windows 7 64位).构建完成没有任何错误.
然后我尝试按照这些说明进行操作,其中提到我应该在源代码的根目录上运行模拟器.但是,当我尝试这个时,我收到一条错误,指出找不到此命令.
所以我去了文件夹out/host/linux-x86/bin,我发现有几个文件emulator*:
emulatoremulator-armemulator_rendereremulator-uiemulator-x86当我键入emulator和emulator-x86在这里时,它也不起作用.这是我得到的错误:
xxxx/out/host/linux-x86/bin$ ./emulator-x86
emulator: ERROR: You did not specify a virtual device name, and the system
directory could not be found.
If you are an Android SDK user, please use '@<name>' or '-avd <name>'
to start a given virtual device (see -help-avd for details).
Otherwise, follow the instructions in -help-disk-images to start the emulator
Run Code Online (Sandbox Code Playgroud)
所以当我跑步时./emulator-x86 -help-disk-images,我看到以下内容:
If you …Run Code Online (Sandbox Code Playgroud) 继续我之前关于Windows 7任务栏的问题,我想诊断为什么Windows不承认我的应用程序是独立的javaw.exe.我目前有以下JNA代码来获取AppUserModelID:
public class AppIdTest {
public static void main(String[] args) {
NativeLibrary lib;
try {
lib = NativeLibrary.getInstance("shell32");
} catch (Error e) {
System.err.println("Could not load Shell32 library.");
return;
}
Object[] functionArgs = new Object[1];
String functionName = null;
Function function;
try {
functionArgs[0] = new String("Vendor.MyJavaApplication")
.getBytes("UTF-16");
functionName = "GetCurrentProcessExplicitAppUserModelID";
function = lib.getFunction(functionName);
// Output the current AppId
System.out.println("1: " + function.getString(0));
functionName = "SetCurrentProcessExplicitAppUserModelID";
function = lib.getFunction(functionName);
// Set the new …Run Code Online (Sandbox Code Playgroud) 我正在开展一个项目,要求我的应用程序能够在活动呼叫期间在语音的上行链路频率上发送DTMF音调.
我的两个条件是:
我花了几天时间做作业,并且我知道当前的SDK /标准API不支持通话中的DTMF发送.但是,通过使用相关的类com.android.internal.telephony我希望模仿本机Phone应用程序如何做到这一点.我在网站上关注如何使用标准第三方应用程序的内部API.
我还设置了Android OS开发环境,并且能够在模拟器上以调试模式运行Phone应用程序以确定其内部工作方式.
我在股票标准模拟器上尝试了各种方法,但我得到的错误是:
尝试使用android.uid.phone的sharedUserId基于Phone.apk的源安装重命名的应用程序后,我得到:
安装错误:INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
毫无疑问,由于我没有系统证书来签署它.
在尝试根据Phone.apk来源的相关DTMF音调发送代码编写自定义应用程序后,在设置PhoneFactory时出现以下错误;
java.lang.SecurityException:Permission Denial:不允许发送广播android.provider.Telephony.SPN_STRINGS_UPDATED.
毫无疑问,由于Android应用程序没有正确的权限,尽管AndroidManifest.xml设置的权限与Phone.apk相同.
我不知道还能尝试什么.有没有人有什么建议?
先谢谢,西蒙.
Google Play上的应用程序名称不必是唯一的,并且可以通过商标声明或DCMA请求Google删除违规应用程序.然而,不太清楚的是它如何与包名称一起使用.
如果我正在开发"谷歌应用程序"(请原谅我一个愚蠢的例子)但是有人打败我注册com.google怎么办?
另一个问题出现在Stack Overflow上,但并没有真正解决包名.
根据Android文档,我们知道左侧和顶部黑线定义了可伸展区域,而底部和右侧行定义了内容区域.
这很容易理解,但我在android-17框架中找到了名为textfield_activated_holo_dark.9.png的图片.左下角,右下角和右上角的红色是什么目的?

我想开发看起来像iPhone锁屏的自定义锁屏应用程序.
是否有任何教程或示例?如果没有,我应该从哪里开始?
我正在使用Eclipse Helios 3.6.2进行Android开发,每当我在图形布局模式(而不是XML布局)中设计布局时,我都无法在图形布局中看到ScrollView的全部内容.
具体来说,当我使用ScrollView并且ScrollView的高度超过内容视图区域的高度(即,在图形布局模式中可见的手机屏幕)时,我无法看到我在屏幕下方.
在Eclipse Helios 3.6.1中有一个名为"expand to fit"的选项; 每当我点击它时,手机屏幕的大小都会增加,以包含我添加的所有元素.我如何在3.6.2中实现同样的目标?

android ×8
css ×1
dtmf ×1
fft ×1
google-play ×1
in-call ×1
internal ×1
java ×1
jna ×1
linux-kernel ×1
locking ×1
multi-window ×1
nine-patch ×1
screen ×1
telephony ×1
utf-16 ×1
windows-7 ×1