标签: android-4.0-ice-cream-sandwich

如何在模拟器中使用和测试Android 4.0 Calendar API?

大多数人使用真实手机来测试Google帐户特定的Android功能吗?例如,我想开发/测试Ice Cream Sandwich日历api,在模拟器中我可以将Google Gmail帐户添加到操作系统,但日历似乎永远不会同步.

这是一篇相关的帖子:

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

我的问题是你如何测试它?我想升级我的nexus手机和galaxy 10.1平板电脑,但我也想确保升级是安全的.如果模拟器可以支持有限的同步等,那将是很好的.

谢谢.

api android calendar android-4.0-ice-cream-sandwich

9
推荐指数
1
解决办法
5316
查看次数

显示DialogFragments会导致ICS崩溃

Fragments API发布后,我开始使用兼容包将所有已弃用的对话框移植到DialogFraments中.一切都运行良好,直到我注意到我的对话框仅导致ICS崩溃:

E/AndroidRuntime(  883): FATAL EXCEPTION: main
E/AndroidRuntime(  883): java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
E/AndroidRuntime(  883):    at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1254)
E/AndroidRuntime(  883):    at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1265)
E/AndroidRuntime(  883):    at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:541)
E/AndroidRuntime(  883):    at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:525)
E/AndroidRuntime(  883):    at android.support.v4.app.DialogFragment.show(DialogFragment.java:123)
E/AndroidRuntime(  883):    at com.myapp.ui.dialogs.TwoButtonDialogFragment.showDialog(TwoButtonDialogFragment.java:84)
Run Code Online (Sandbox Code Playgroud)

我的对话框显示在AsyncTask.onPostExecute()上,以显示对用户的http响应.在深入研究问题之后,我得出的结论是,只有当Activity暂停或停止时才会发生此异常,并且在其他版本的Android上不会发生此异常.我已经尝试使用commitAllowingStateLoss(),但它没有帮助,因为在DialogFragment.show()上抛出了异常.这是我的DialogFragment代码:

private static void showDialog(FragmentActivity activity, String title, String msg, 
        String positiveButtonText, String negativeButtonText, int id, Bundle args) {

    if (activity.isFinishing()) {
        return;
    }

    FragmentManager fmgr = activity.getSupportFragmentManager();
    FragmentTransaction ft = fmgr.beginTransaction();
    Fragment prev = fmgr.findFragmentByTag(TAG);
    if (prev != …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-4.0-ice-cream-sandwich android-dialogfragment

9
推荐指数
1
解决办法
5914
查看次数

"body background-color:transparent"对android 4.0.3的webview没有影响

我想在imageView上的静态图像上显示webView.

我像这样为webView设置透明色

webview.setBackground(0);
Run Code Online (Sandbox Code Playgroud)

我将背景颜色设置为透明

<html>
<head>
</head>
<body style="background-color:transparent">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但Webview的背景显示为白色.

我展示了任何问题,并尝试以下页面的解决方案,但没有任何改变.

你有什么想法?请帮我.

android-webview android-4.0-ice-cream-sandwich

9
推荐指数
2
解决办法
6944
查看次数

当日历同步新事件时,处理更新的最佳方法是什么?

通过ICS,我们现在可以使用日历API!:)

我的问题是,我们如何确定事件是否已更新.理想情况下,这可以通过BroadcastReceiver完成,但我不认为有一个可公开访问.有一些事件被广播,但我不认为它可以被非系统应用程序访问.

02-06 23:05:05.316: I/CalendarProvider2(9201): Sending notification intent: Intent { act=android.intent.action.PROVIDER_CHANGED dat=content://com.android.calendar }
02-06 23:05:05.320: W/ContentResolver(9201): Failed to get type for: content://com.android.calendar (Unknown URL content://com.android.calendar)
Run Code Online (Sandbox Code Playgroud)

这是我现在的工作.有没有更好的办法?如果用户看到一段时间内正在运行的服务,并且经常会将其杀死以节省电池寿命.

public class CalendarUpdatedService extends Service {

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        int returnValue = super.onStartCommand(intent, flags, startId);

        getContentResolver().registerContentObserver(
                CalendarContract.Events.CONTENT_URI, true, observer);

        return returnValue;
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    ContentObserver observer = new ContentObserver(new Handler()) {

        @Override
        public boolean deliverSelfNotifications() {
            return true;
        }

        @Override …
Run Code Online (Sandbox Code Playgroud)

android android-4.0-ice-cream-sandwich

9
推荐指数
1
解决办法
4355
查看次数

Android不承认TTS引擎

我在这里开发一个非常简单的应用程序.这是我脑性麻痹的女儿.这只是一个很大的YES和NO按钮,所以她可以在要求时按下它们.

嗯......我正在使用SVOX经典TTS引擎.

一切顺利,直到我的平板电脑升级到ICS.现在,每次我运行应用程序时,都会打开市场,要求我安装TTS.我点击"回"然后,我的应用说话.这非常烦人.

以下是Google API所说的内容:

*成功检查将由CHECK_VOICE_DATA_PASS结果代码标记,表示在创建TextToSpeech对象后,此设备已准备好发言.如果没有,我们需要让用户知道安装设备成为多语言对话机所需的数据!下载和安装数据是通过触发ACTION_INSTALL_TTS_DATA意图完成的,该意图将用户带到Android Market,并让她/他启动下载.下载完成后,将自动安装数据.以下是onActivityResult()实现的示例:*

这是我的代码:

public class yesOunoActivity extends Activity implements OnInitListener{
ImageView yes;
ImageView no;
public TextToSpeech tts;
private int MY_DATA_CHECK_CODE = 0;

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    Intent checkIntent = new Intent();
    checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
    startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);

    tts = new TextToSpeech(this, this);

    setContentView(R.layout.yesorno);

    yes = (ImageView) findViewById(R.id.yes);
    no = (ImageView) findViewById(R.id.no);


    yes.setClickable(true); 
    yes.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent arg1) {

             if (arg1.getAction() == android.view.MotionEvent.ACTION_DOWN) {                             
                 tts.speak("yes!", TextToSpeech.QUEUE_ADD, null);
             }
             return true; …
Run Code Online (Sandbox Code Playgroud)

android text-to-speech android-4.0-ice-cream-sandwich

9
推荐指数
1
解决办法
4757
查看次数

如何避免我的应用程序显示在最近使用的应用程序列表中

Ice Cream Sandwich用户可以看到最近使用的应用程序的列表,其中包含最后一个状态的屏幕截图UI.我正在开发一个应用程序,它显示不应以任何方式保存在内存中的机密信息.有没有办法禁用该功能?

android android-4.0-ice-cream-sandwich

9
推荐指数
1
解决办法
2689
查看次数

requestLocationUpdate()抛出IllegalArgumentException

我们最近测试了我们的应用程序对Android API级别14和15.我们开始开发目标最小SKD版本8并排除平板电脑(3.x).
使用2.x一切运行良好,但在4.x机器人上运行应用程序时,它会在我们获取用户位置时崩溃.

FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to create service  java.lang.IllegalArgumentException: provider=network  
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2263)  
at android.app.ActivityThread.access$1600(ActivityThread.java:123)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201)  
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 Method)  
at java.lang.reflect.Method.invoke(Method.java:511)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)  
at dalvik.system.NativeStart.main(Native Method)  

Caused by: java.lang.IllegalArgumentException: provider=network  
at android.os.Parcel.readException(Parcel.java:1331)  
at android.os.Parcel.readException(Parcel.java:1281)  
at android.location.ILocationManager$Stub$Proxy.requestLocationUpdates(ILocationManager.java:646)  
at android.location.LocationManager._requestLocationUpdates(LocationManager.java:582)   
at android.location.LocationManager.requestLocationUpdates(LocationManager.java:446)  
at package.name.LocationGetter.onCreate(LocationGetter.java:63)  
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2253)  
...
Run Code Online (Sandbox Code Playgroud)

资源:

public void onCreate() {
  locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
  locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 300000, 500, locationListener);
  super.onCreate();
 }
Run Code Online (Sandbox Code Playgroud)

根据文件,IAE被抛出if provider or listener is null …

android geolocation illegalargumentexception android-4.0-ice-cream-sandwich

9
推荐指数
1
解决办法
4764
查看次数

尽管setDoOutput(true)和setRequestMethod("POST"),HttpURLConnection始终执行GET请求而不是POST请求

自更新到冰淇淋三明治后,我的POST请求不再起作用.在ICS之前,这很好用:

try {
        final URL url = new URL("http://example.com/api/user");
        final HttpURLConnection connection = (HttpURLConnection) url
                .openConnection();
        connection.setRequestMethod("POST");
        connection.setDoOutput(false);
        connection.setDoInput(true);
        connection.setRequestProperty("Content-Length", "0");
        if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) {
            Log.w(RestUploader.class.getSimpleName(), ": response code: " + connection.getResponseMessage());
        } else {
            final BufferedReader reader = new BufferedReader(
                    new InputStreamReader(connection.getInputStream()));
            final String line = reader.readLine();
            reader.close();
            return Long.parseLong(line);
        }
    } catch (final MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (final ProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (final …
Run Code Online (Sandbox Code Playgroud)

java android http android-4.0-ice-cream-sandwich

9
推荐指数
1
解决办法
4255
查看次数

具有全高清分辨率的Android SDK模拟器

因此,我今天刚收到第四封电子邮件,内容是关于支持最新版本的平板电脑,其中一个10英寸的屏幕,分辨率为1920 x 1200像素.我的应用程序中的布局是针对每种设备类型的最佳选择而定制的,但是我不可能以1920 x 1200像素分辨率启动SDK模拟器,因此我无法进行布局这个屏幕尺寸.

我已经多次向Android开发者团队提及他们每周的Google+视频群聊问题(并且他们并不在乎),我在Stack Overflow和网络上看到了很多关于它的其他问题我也是还向Android Tools网站提出了有关此问题的两个错误.我仍然留下一个不能在这些高分辨率下工作的模拟器.

市场上有一些具有这些高分辨率的设备,我知道Android操作系统支持它,所以我被模拟器的极限所困扰.

我的电脑是一款功能强大的电脑,可以运行它,以前从未出现过低分辨率仿真器的问题.如果有人能帮助我,我会非常高兴,因为这让我疯狂.

android android-3.0-honeycomb android-4.0-ice-cream-sandwich

9
推荐指数
0
解决办法
708
查看次数

我的应用程序在Android 4.0上明显变慢了

我在Android 3.2上开发并测试了一个应用程序,它与SQLite数据库交互并在屏幕上显示结果.我没有动画或任何花哨的东西.我所拥有的是很多ListViews向用户显示数据.

该应用程序的数据库非常大,有些表的行数超过300k.我们尝试在与数据库的每次交互中使用AsyncTask,但我们仍然需要一些点来优化性能.

问题是该公司将部分平板电脑更新为冰淇淋三明治,该应用程序比Honeycomb慢得多.我在两个设备中加载了相同的代码,使用相同的db,一个运行ICS,另一个运行Honeycomb.该应用程序在3.2设备中表现更好.我也试过使用,<uses-sdk android:minSdkVersion="14" />但它没有做得更好.

有什么办法可以优化4.0的性能吗?我也很想知道为什么会发生这种情况,以及是否有任何可能导致这种情况发生的事情(某些组件或类在4.0上运行不正常).

谢谢!

更新:我找到了我的应用程序主屏幕的解决方案.我正在呈现一个作为水平列表的片段,它是一个HorizontalScrollView加载了大量数据并创建了很多LinearLayout要在ScrollView 中呈现的片段.我找到了一个Horizo​​ntalListView的小部件,并用它来加载我的列表.只是这使应用程序更快.但是我没有找到为什么它在ICS上速度慢的答案.

我也试过分析应用程序,但这是一件非常困难的事情,有很多信息.我可能会在接下来的几周内继续这样做以加速应用程序.感谢您的所有答案和评论!

performance android android-4.0-ice-cream-sandwich

9
推荐指数
1
解决办法
299
查看次数