在Android上使用新的Google Maps V2 API时,如果用户的设备未安装Google Play(服务)应用,则会看到错误消息.我想知道是否有可能以某种方式覆盖此错误消息的样式,使其不那么刺耳,更适合应用程序样式.
这就是错误的样子:

我在我发布的应用中使用了Android V2 Google地图库(Google Play服务).我一直看到Google Play中出现的零星异常似乎表明支持地图片段偶尔会尝试检查网络状态.但是,库文档未提及此权限是必需的.我不直接在我的应用程序中检查网络状态,所以我没有声明此权限.因此,SecurityException在支持地图片段膨胀时,有时会抛出a :
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.foo/com.foo.ui.TransactionDetailActivity}: android.view.InflateException: Binary XML file line #327: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5039)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #327: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
at android.view.LayoutInflater.inflate(LayoutInflater.java:459) …Run Code Online (Sandbox Code Playgroud) 我是新手在android中渲染文件,我想在我的应用程序中渲染或显示docx文件.
我已经从docx文件中提取了文本,但现在我也想从docx文件中提取图像.
我已经找到了几种用纯Java显示图像的方法,但Android有什么好的例子吗?
我试过这段代码来获取图片但没有工作......
public void extractImages(Document xmlDoc)
{
NodeList binDataList = xmlDoc.getElementsByTagName("w:drawings");
String fileName = "";
Node currentNode;
for(int i = 0; i < binDataList.getLength(); i++)
{
currentNode = binDataList.item(i);
if(currentNode.getNodeType() == Node.ELEMENT_NODE && ((Element)currentNode).hasAttribute("w:name"))
{
File newImageFile = new File(picDirectory, ((Element)currentNode).getAttribute("w:name").replaceFirst("wordml://", ""));
if(newImageFile.exists())
{
}
else
{
if(writeImage(newImageFile, currentNode))
{
//Print some success message
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 当用户打开调用位置管理器getLastKnownLocation方法的Activity时,我们一直在获取某些设备崩溃的报告.我们在应用程序清单中请求了所有必需的权限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)
这是堆栈跟踪:
java.lang.RuntimeException: Unable to resume activity {com.projectname/com.projectname.ui.AtmFinderActivity}: java.lang.SecurityException: invalid package name: com.google.android.gms
at android.app.ActivityThread.performResumeActivity(ActivityThread.java)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
at android.app.ActivityThread.access$600(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
at android.os.Handler.dispatchMessage(Handler.java)
at android.os.Looper.loop(Looper.java)
at android.app.ActivityThread.main(ActivityThread.java)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.SecurityException: invalid package name: com.google.android.gms
at android.os.Parcel.readException(Parcel.java)
at android.os.Parcel.readException(Parcel.java)
at android.location.ILocationManager$Stub$Proxy.getLastLocation(ILocationManager.java)
at android.location.LocationManager.getLastKnownLocation(LocationManager.java)
at android.privacy.surrogate.PrivacyLocationManager.getLastKnownLocation(PrivacyLocationManager.java)
at com.projectname.util.LocationUtils.getLastKnownLocation(SourceFile:48)
at com.projectname.ui.AtmFinderFragment.initMapIfNeeded(SourceFile:401)
at com.projectname.ui.AtmFinderFragment.onGooglePlayServicesAvailable(SourceFile:187)
at com.projectname.maps.GoogleMapServicesUtil.getGooglePlayServicesStatus(SourceFile:40)
at com.projectname.ui.AtmFinderFragment.onResume(SourceFile:149)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:917)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1080) …Run Code Online (Sandbox Code Playgroud) 我正在使用来自loopj的伟大的异步http库,但我遇到了一个小麻烦.
如果用户没有互联网连接或丢失连接,该应用程序将不会返回任何内容.这部分是预期的,但它也不会触发onFailure方法.
此外,我有一个互联网连接时使用的代码确实有效,所以在服务器端没有问题.
这是一些被剥离到最低限度的代码.它也不起作用(我也测试了这个)
String url = getString(R.string.baseurl) + "/appconnect.php";
client.getHttpClient().getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true);
client.get(url, null, new JsonHttpResponseHandler()
{
@Override
public void onSuccess(JSONArray response)
{
Toast.makeText(getApplicationContext(), "Success", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Throwable e, JSONArray errorResponse)
{
Toast.makeText(getApplicationContext(), "Failure", Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢,阿什利
我有一个解锁屏幕,提示用户输入一个四位数的引脚.如果用户输入的引脚不正确,TextView则会显示先前不可见的错误消息.此时,TalkBack可以大声读出错误消息的内容.
通过一些实验,我意识到我可以设置android:focusableInTouchMode="true"视图并以编程方式调用View#requestFocus().这是第一次工作,但由于视图已经具有焦点,因此后续错误失败.通常,覆盖当前视图焦点似乎也是一个坏主意.
然后我尝试View#announceForAccessibility(java.lang.CharSequence)在显示错误消息时调用.显然,如果视图当前不可见,此方法将无声地失败.没问题,否则它完美无缺.但是,它仅适用于API级别16+(Jelly Bean),它确实限制了它的实用性.由于TalkBack支持API级别7以上,因此必须有更好的解决方案.
我已经看过关于可访问性的2011和2012年Google I/O会议,但似乎都没有涵盖这个基本用例.最好的方法是什么?
编辑1: TLDR; 有没有办法强制 TalkBack在引入View#announceForAccessibility(java.lang.CharSequence)Jelly Bean 之前大声读出一些文本?
处理长号码的首选方法是什么,例如银行帐号,应该一次读取一个字符?我知道用户可以通过这种方式让TalkBack读出一个数字,但如果我们能暗示它应该从一开始就这样做就会很好.
设置数字之间有空格的内容描述是一个好主意,还是用户会觉得这很烦人?
谢谢!
我遇到了一个奇怪的问题,特别是在Nexus 4上(虽然它可能存在于其他设备上),当焦点模式设置为时,相机闪光灯不会闪光FOCUS_MODE_CONTINUOUS_PICTURE.相同的代码在运行相同版本的Android(4.2.1)的Galaxy Nexus上运行良好.以前有人遇到过这个问题吗?我只需将焦点模式切换为,即可解决问题FOCUS_MODE_AUTO.我希望这个问题能够轻松解决,因为连续的图像聚焦模式非常重要.
我有一个捕获用户签名的自定义视图(John Hancock).我希望我们的应用程序尽可能地易于访问,因此我需要特别注意确保优化我们的TalkBack屏幕和触摸式触摸屏.由于触摸式触摸将所有一个手指手势更改为两个手指手势,因此它会破坏自定义签名视图.
我想要做的是通过触摸式探索在悬停时宣布视图的内容描述,然后在用户双击时启用视图.这将允许他们使用像普通用户这样的单个指针在视图顶部绘制.
我一直在搜索,但很难找到有关Android辅助功能库的详细文档.有任何想法吗?
我刚刚升级到最新版本的SDK(版本19),现在注意到LogCat窗口总是出现在我调试时.我把它关上了,但不久之后又回来了.我觉得这很烦人.我怎样才能永久关闭它.
android ×10
talkback ×3
java ×2
android-maps ×1
android-view ×1
asynchronous ×1
camera ×1
docx ×1
eclipse ×1
http ×1
loopj ×1
ms-word ×1
nexus-4 ×1