我正在制作一个振动切换小部件(事实上,它的第一个版本已经在市场上)但我在Android 2.2的振动设置方面遇到了一些问题.
高达Android 2.1我没有问题,当我想禁用振动我做
am.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_SETTING_OFF);
am.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,AudioManager.VIBRATE_SETTING_OFF);
Run Code Online (Sandbox Code Playgroud)
和相同,但VIBRATE_SETTING_ON
在两条线上打开它,它的工作正常.
但是,由于Android 2.2引入了"仅在静音模式下振动"和"在不在静音模式下振动",我不知道如何使其工作.当vibrate设置为"Always"或"Never"时没有问题,但是一旦用户手动将其设置为其他两个设置之一,应用程序就会开始做一些奇怪的事情.
例如,如果我将它设置为"仅在静音模式下振动"并且通过我的小部件关闭振动,它会关闭,但是当我重新打开它时它会返回"仅在静音模式下"而不是"永远".事实上,没有办法将它设置回"Always",除非你通过Settings - > Sound进行,所以我猜振动模式的组合框正在做一些我不知道的事情.就像它将值存储在其他地方一样,因为即使我手动设置为"Always",当我禁用它并通过小部件再次启用它(使用我之前发布的代码)时,它会一直回到"仅在静音模式下振动" ".
而且,AudioManager类中的"仅在静默模式下"(VIBRATE_SETTING_ONLY_SILENT)中有一个值,但当您将其设置为"仅当不处于静默模式"时,它使用VIBRATE_SETTING_ON,因此无法检测到它(不是我知道,我的意思是).
希望我没有太混乱,但我想提供所有可能的数据.所有这一切......
有谁知道如何正确处理2.2中的振动设置?为了完全禁用或启用振动,是否还有我必须设置或运行的其他变量?还是一种将手机"重置"到已知状态以便工作正常的方法?
重现问题的步骤(或者至少是其中一个问题)是:
通过设置菜单将振动设置为"仅在静音模式下".
通过小部件将振动设置为"从不":
setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
检查振动设置为"从不"的设置菜单.
通过小部件将振动设置为"始终":
setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON);
自Android首次发布以来已经过了大约2年,并且已经有6到7款Android版本,与Windows手机不同.我发现在2.1和2.2之间有很多变化.调用我的本地服务的方式和其他方法已被弃用等.
那么Android 2.2的稳定性如何.我们会更频繁地发布吗?在2.2中开发是否会让我受伤?2.2听起来像一个子版本,它还没有基线.你的想法是什么?
我正在开发一个依赖于相机API的Android应用程序,使用HTC EVO作为我的测试设备.无论我到目前为止尝试过什么,相机预览看起来正确的唯一时间是横向模式(90度旋转,具体而言).在纵向模式(0度旋转)下,似乎没有办法正确定位预览.
设备上的默认摄像头应用程序(用于HTC Sense)允许任何类型的旋转而没有任何问题,因此我知道没有硬件限制.我甚至从HTC的开发者网站下载了一些源代码,但显然它都是在C内核中.
谁能指出我正确的方向来解决这个问题?有没有办法在Android 2.1或2.2中正确旋转预览?
谢谢.
PS这是我正在使用的代码,如果它有帮助......
package spikes.cameraSpike03;
import java.util.List;
import android.app.Activity;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.Size;
import android.os.Bundle;
import android.util.Log;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends Activity implements SurfaceHolder.Callback {
private static final String LOG_TAG = "spikes.cameraSpike03 - MainActivity";
private Camera _camera;
private boolean _previewIsRunning = false;
private SurfaceView _svCameraView;
private SurfaceHolder _surfaceHolder;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFormat(PixelFormat.TRANSLUCENT);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
_svCameraView = …
Run Code Online (Sandbox Code Playgroud) camera android orientation android-sdk-2.1 android-2.2-froyo
假设我正在做类似测验的事情,我有一个计数器来显示已正确回答的问题数量.当一个问题得到正确回答,并显示一个新屏幕(活动)时,如何将该号码转移到下一个屏幕?
我正在尝试使用XMLPullParser来解析Android应用程序的一些XML.我在android-8 SDK的android.jar中进行classpathing.
唉,这段代码:
import android.util.Xml;
import org.xmlpull.v1.XmlPullParser;
class InstantiateXMLPullParser {
public static void main( String args[] ){
XmlPullParser xpp = Xml.newPullParser();
}
}
Run Code Online (Sandbox Code Playgroud)
失败并出现此错误:
Exception in thread "main" java.lang.RuntimeException: Stub!
at android.util.Xml.newPullParser(Xml.java:15)
at InstantiateXMLPullParser.main(InstantiateXMLPullParser.java:6)
Run Code Online (Sandbox Code Playgroud)
我怀疑我需要在某个地方指定一个实现 - 看起来曾几何时Android使用org.apache.harmony.xml.ExpatPullParser作为其默认的pull解析器,但似乎不再是这种情况.
我正在开发一个应用程序,我需要下载一个大小为5到50 MB的文件(.zip/.txt/.jpg等).基于Android 2.2的应用程序.
用户提供URL并触发下载,然后下载过程在后台运行直到完成.
应该使用流式传输来下载文件.
我想知道如何使用HTTP连接完成此操作.可以使用
哪些类?
android 2.2是否为此提供了API?
任何形式的帮助表示赞赏....
streaming android download progressive-download android-2.2-froyo
我刚刚开始开发一个快速的Android应用程序.
小问题.什么是州4?
我正在使用MediaPlayer,每次运行应用程序时都会收到错误消息,指出Media Player"start()"首先在状态0中调用,然后是状态4.
有谁知道4是什么状态?
如果我知道状态1和2等状态,我可以找出问题...
谢谢,
做一个学徒,一家公司告诉我为Jelly-bean开发一个应用程序,但现在他们突然想把我的一些工作移到froyo.
我想重新开始,但我甚至无法开始,更改TextView
文本会让我失望nullPointerException
:
package com.videopleyer22ics;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity
{
TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
tv1 = (TextView) findViewById(R.id.texto1);
setContentView(R.layout.activity_main);
tv1.setText("Text changed");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
这是Logcat转储
02-11 14:52:34.058: E/AndroidRuntime(510): FATAL EXCEPTION: main
02-11 14:52:34.058: E/AndroidRuntime(510): java.lang.RuntimeException: Unable to start …
Run Code Online (Sandbox Code Playgroud) 我使用DataBaseHelper类编写了一个代码,我使用SQLite创建一个数据库并将其放在资源中,然后这个帮助程序类将它复制到/ data/data/mynamespace/databases中,但是如果我在SQLite db中使用SQLBrowser插入值,那么资产文件夹,然后我读它使用的代码,但我不觉得那些插入值,但如果我使用的代码,我可以看到我的价值观插入插入,我的理解是在这样一种方式,资产和/数据/数据是两个独立的副本,但问题是,如何使用/ data/data/mynamespace/databases/mydb文件中的SQLite数据库浏览器浏览数据.因为这是实际的数据库,在资产中只有一个副本,请让我知道它的解决方案.
android ×9
java ×2
android-4.0-ice-cream-sandwich ×1
camera ×1
download ×1
media-player ×1
mobile ×1
orientation ×1
sdk ×1
settings ×1
state ×1
streaming ×1
variables ×1
vibration ×1