无法使用意图从本机录音机获得结果

时间:2011-09-18 09:26:18

标签: android android-emulator

我正在尝试启动本机录制活动,录音机显示,当它保存剪辑时,我的应用程序显示错误。我正在使用htc desire和htc wildfire以及在模拟器上进行测试,

           Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
                   startActivityForResult(intent, GET_AUDIO);


       @Override
       protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   super.onActivityResult(requestCode, resultCode, data);

      switch (requestCode) {
   case GET_AUDIO:
    Log.i(TAG, data.getDataString());
    break;
 }
}

我的Logcat消息

09-18 15:18:35.015: ERROR/ContentService(98): Content Service Crash
09-18 15:18:35.015: ERROR/ContentService(98): java.lang.NullPointerException
09-18 15:18:35.015: ERROR/ContentService(98):     at android.content.ContentService.notifyChange(ContentService.java:166)
09-18 15:18:35.015: ERROR/ContentService(98):     at android.content.IContentService$Stub.onTransact(IContentService.java:91)
09-18 15:18:35.015: ERROR/ContentService(98):     at android.content.ContentService.onTransact(ContentService.java:83)
09-18 15:18:35.015: ERROR/ContentService(98):     at android.os.Binder.execTransact(Binder.java:288)
09-18 15:18:35.015: ERROR/ContentService(98):     at dalvik.system.NativeStart.run(Native Method)



09-18 15:18:35.245: ERROR/AndroidRuntime(4477): FATAL EXCEPTION: main
09-18 15:18:35.245: ERROR/AndroidRuntime(4477): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { dat=content://media/external/audio/media/9 }} to activity {ChatActivity}: java.lang.NullPointerException
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3712)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at android.app.ActivityThread.handleSendResult(ActivityThread.java:3754)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at android.app.ActivityThread.access$2800(ActivityThread.java:135)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2162)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at android.os.Looper.loop(Looper.java:143)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at android.app.ActivityThread.main(ActivityThread.java:4914)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at java.lang.reflect.Method.invokeNative(Native Method)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at java.lang.reflect.Method.invoke(Method.java:521)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at dalvik.system.NativeStart.main(Native Method)




09-18 15:18:35.245: ERROR/AndroidRuntime(4477): Caused by: java.lang.NullPointerException
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at android.os.Parcel.readException(Parcel.java:1253)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at android.os.Parcel.readException(Parcel.java:1235)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at android.content.IContentService$Stub$Proxy.notifyChange(IContentService.java:458)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at android.content.ContentResolver.notifyChange(ContentResolver.java:850)
09-18 15:18:35.245: ERROR/AndroidRuntime(4477):     at android.content.ContentResolver.notifyChange(ContentResolver.java:836)

1 个答案:

答案 0 :(得分:0)

看起来像onActivityResult中的空指针异常。

您必须期望数据可能为null,并且还检查resultCode。如果不检查返回的内容,请不要盲目地调用数据方法。