Articles of android 4.0

辅助function服务未启动

我想在android ics(4.0.3)中记录所有toast事件,但我无法记录任何系统事件。 服务还没开始! 根据这个问题: onAccessibilityEvent(AccessibilityEvent事件)没有拦截通知 MyAccessibilityService.java package com.test.toasts2; import android.accessibilityservice.AccessibilityService; import android.accessibilityservice.AccessibilityServiceInfo; import android.app.Notification; import android.os.Parcelable; import android.util.Log; import android.view.accessibility.AccessibilityEvent; import android.widget.Toast; public class MyAccessibilityService extends AccessibilityService { public static final String TAG = “volumeMaster”; @Override public void onAccessibilityEvent(AccessibilityEvent event) { Log.v(TAG, “***** onAccessibilityEvent”); Toast.makeText(getApplicationContext(), “Got event from: ” + event.getPackageName(), Toast.LENGTH_LONG).show(); } @Override public […]

有没有办法只为Android 4.0.3禁用硬件加速?

我最近偶然发现了android 4.0.3的问题,我在应用程序启动后立即获得以下exception(在其他Android版本上它工作正常): java.lang.NullPointerException at android.view.GLES20RecordingCanvas.drawPatch(GLES20RecordingCanvas.java:97) at android.graphics.NinePatch.draw(NinePatch.java:125) at android.graphics.drawable.NinePatchDrawable.draw(NinePatchDrawable.java:189) at android.widget.ImageView.onDraw(ImageView.java:892) at android.view.View.draw(View.java:10978) at android.view.ViewGroup.drawChild(ViewGroup.java:2887) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) at android.view.ViewGroup.drawChild(ViewGroup.java:2885) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489) at android.view.View.getDisplayList(View.java:10415) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597) at android.view.View.getDisplayList(View.java:10380) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597) at android.view.View.getDisplayList(View.java:10380) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597) at android.view.View.getDisplayList(View.java:10380) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597) at android.view.View.getDisplayList(View.java:10380) at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:842) at android.view.ViewRootImpl.draw(ViewRootImpl.java:1910) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1634) at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4424) at java.lang.reflect.Method.invokeNative(Native […]

为什么Android 4.0 / Ice Cream Sandwich会分配如此多的堆内存?

我注意到在我的Galaxy Nexus上, android.content.res.Resources正在分配大约11MB。 我发现这是因为我正在使用DDMS和“ Dump HPROF file ”选项来分析事物。 所以,我花了两个小时试图查看分配是由于我的代码或支持库中的某些内容。 我删除了所有数据,大量的类,我的所有库,并没有看到任何变化。 在活动的onCreate()方法开头的代码中放置断点后,它显示已经存在11MB分配。 在彻底混淆之后,我决定连接我运行CM7的root用户Nook Color,以查看它为同一应用程序的初始内存使用情况报告的内容。 由MAT报告的最坏情况记忆“问题可疑”的重量仅为896KB。 ICS是头重脚轻的吗? 我在这里错过了什么吗? 据我所知,我的应用程序运行正常,但堆使用率表示97%已满,让我担心潜在的故障。 如果它有帮助,MAT表明消耗所有内存的主要对象是BitmapDrawables , NinePatchDrawables和NinePatchDrawables 。 我不明白这些分配来自何处。

如何使用新的Android 4.0 Ice Cream Sandwich API阅读和编辑Android日历活动?

当他们想要添加新活动时,我们正在尝试向用户显示冰淇淋三明治日历视图。 我们只能在模拟器中测试它。 另一个问题是我们找不到如何使用CalendarProvider的任何示例。 在处理三明治日历时,这是正确的课程吗? 使用Google Gdata API会更容易吗? [编辑]所以我们工作的是向日历添加一个事件,但它不是通过API,我们在正确的视图中打开日历。 但现在问题是它在模拟器中不起作用,因为我们无法同步日历。 所以问题是:如何使用新的Android 4.0 Ice Cream Sandwich API阅读和编辑Android日历事件?

使用android 4浏览器自动启动html5video

我想使用android 4冰淇淋三明治浏览器自动启动android html5video。 我尝试了许多html5video的java脚本函数和autobuffer autoplay标签。 但没有任何效果。 我通过Android应用程序在webview中启动android chrome客户端,该客户端应该能够自动启动video。 单击播放按钮时播放video但不播放自动播放。 是否限制在Android? 另外需要注意的是,即使我们点击播放按钮并且video正在播放和完成,也不会在chromeClient中调用回调方法。 我已经google了一下,在Android 4上没有find关于此问题的正面结果。

添加联系人意图不会返回ICS下的onActivityResult数据

我希望我的应用程序通过Android上的标准联系人界面提示用户创建新联系人。 然后我希望能够从新创建的联系人中读取信息。 我的代码基于此网站的“添加新联系人”。 Intent intent = new Intent(Intent.ACTION_INSERT); intent.setType(Contacts.CONTENT_TYPE); intent.putExtra(ContactsContract.Intents.Insert.PHONE, number); startActivityForResult(intent, PICK_CONTACT); 接着 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Intent intent = new Intent(this, Foo.class); Uri uri = data.getData(); //I get nullpointer here on ICS intent.putExtra(“contact”, ContactAccessor.getInstance().loadContact(this, uri)); startActivity(intent); finish(); } 此代码在Android 2.2和2.3上运行良好。 它启动联系人应用程序,让用户输入名称和电子邮件地址等内容,当它们完成后点击“确定”或“保存”或“无论什么”它返回到我的应用程序,我可以阅读他们输入的内容。 在Android 4.0(ICS)上,当用户完成创建联系人时,它不会返回到我的应用程序。 当我退出联系人视图(通过后退按钮)时,它不包含任何具有联系信息的意图。 我应该用什么意图在ICS上获得相同的行为?

首选项和操作栏中的开/关切换按钮 – 冰淇淋三明治样式

我指的是蓝色ON / OFF样式,如ICS手机上的默认Android设置应用程序所示。 它也可以在这里看到: http : //android-developers.blogspot.com/2012/02/android-design-v2-now-with-stencils.html我想将它们放在Preference屏幕中,我是否必须使用自定义首选项小部件? 此外,在操作栏中放置切换按钮是否容易? 这似乎是可能的,因为它是在ICS的默认Android设置中完成Wifi设置,但它可能是一个自定义菜单项? 任何帮助是极大的赞赏。

Appwidget大小计算

可能是我,但是当我根据android页面上给出的公式计算最小app小部件大小时,我没有得到正确的小部件宽度; 公式如下 : width(n)=(70 xn) – 30 当我想要一个5×1小部件时,正确的宽度将是(5 * 70) – 30 = 320dp。 然而,当在motorola Xoom上测试它时,它解析为4×1小部件。 我已经测试了不同的值,400dp对于带有Honeycomb的motorola xoom上的5×1似乎很好,但后来我在常规的Galaxy Tab上用Gingerbread进行测试,然后它解析为6×1(就像人们期望的那样)。 这里有两个问题; 我忽略了Gingerbread和Honeycomb有什么区别? 既然我知道ICS小部件大小不再在小部件之间有填充,那么这里有一些经验法则吗?

活动URL回调在4.0.3 ICS中不起作用

我在Twitter应用程序中使用OAUTH,它将您发送到应用程序中的Twitter页面,然后您将登录并重定向回处理令牌的应用程序。 这在android 2.0.x和3.0.x中完美适用,但在4.0中,当我尝试重定向回我的应用程序时,我得到“网页不可用”。 谁能告诉我为什么会这样? 我的清单文件中有以下内容: twitter页面给出了回调URL,它已经工作但现在不在android 4.0 ICS中,有人可以帮忙吗? 谢谢。

Android ICS Launcher 4.0.x无法保持屏幕方向

我有一个Android ICS Launcher 4.0.x的奇怪案例。 前提: 具有root权限的ICS设备 下载Android ICS Launcher 4.0.3 / 4源代码(修改并运行) 程序: 进入市场(Play商店),下载“Go Task Manager” 在Launcher上打开Widgets选项卡,find“Mem Optimize”,拖动到主屏幕(工作区) 下载并安装“Fruit Ninja” 在主屏幕上的“Mem Optimize”小部件旁边创建“Fruit Ninja”快捷方式。 执行“Fruit Ninja”并将手机放在LANDSCAPE中(在此位置握住它,不要更改此项) 在“水果忍者”的菜单屏幕上,切片“退出”,选择“是” 现在回到Launcher主屏幕,点击“Mem Optimize”小部件 目前的结果: 在步骤7之后,屏幕旋转到LANDSCAPE一段时间并返回PORTRAIT。 期望: 在步骤7之后,屏幕应保持在PORTRAIT中。 我的尝试(修改Launcher ICS源代码): 添加到“Manifest.xml”: android:screenOrientation=”portrait” =>仍然无法解决问题。 处理配置更改, android:configChanges=”orientation|screenSize” =>仍然无法解决问题。 使用: setRequestedScreenOrientation(PORTRAIT) =>仍然无法解决问题。 我试过在Android 2.x上工作过的; 然而,从4.0.3+开始,它不能按预期工作。 有没有人对此有任何想法?