【问题标题】:Android: error when requesting photos?Android:请求照片时出错?
【发布时间】:2011-11-09 15:11:36
【问题描述】:

我的应用程序遇到了我之前没有遇到的问题。我想要做的是允许用户使用意图从设备中拍摄照片的选项。然后将该照片返回给调用活动,然后显示在图像视图中(现在......)。问题是昨天一切都对我有用,而今天(......没有用代码改变任何东西......)似乎根本没有做任何事情。该应用程序似乎“挂起”。不知道如何解决这个问题,甚至解决这个问题的根本原因。如果有人有任何建议,请发布,这里是代码:

//---Pressing this button will allow for user to choose what photo should return---
    Button b2 = (Button) findViewById(R.id.btn_getPhotos);
    b2.setOnClickListener(new OnClickListener()
    {

        public void onClick(View arg0)
        {
            Intent i = new Intent(Intent.ACTION_GET_CONTENT);
            //Intent i = new Intent(Intent.ACTION_PICK);
            i.setType("image/*");

            //**Keep in mind after calling the StartActivityForResult() it seems to hang...**
            startActivityForResult(i, PIC_REQUEST);

        }

    });

这是 OnActivityResult():

 protected void onActivityResult(int requestCode, int resultCode, Intent data )
{   
    if (resultCode == Activity.RESULT_CANCELED)
    {
       //handles when camera was canceled...
       Toast.makeText(this, "Cancelled by user...", Toast.LENGTH_LONG).show();

    } 

    else if (requestCode == PIC_REQUEST) 
    {   
       Uri photoUri = data.getData();

       try 
       {
            Bitmap galleryPic = Media.getBitmap(getContentResolver(), photoUri);
            ImageView image = (ImageView) findViewById(R.id.currentPhoto); 
            image.setImageBitmap(galleryPic);

        } 
       catch (FileNotFoundException e) 
       {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
       catch (IOException e) 
       {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

} 

最后但并非最不重要的是警告/错误日志:

11-09 10:07:47.060: WARN/InputManagerService(142): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@407d13a8
11-09 10:07:56.330: WARN/ActivityThread(3957): Application king.chad.SDE is waiting for the debugger on port 8100...
11-09 10:08:06.250: WARN/ActivityManager(142): Launch timeout has expired, giving up wake lock!
11-09 10:08:06.320: WARN/ActivityManager(142): Activity idle timeout for ActivityRecord{40939988 king.chad.SDE/.MainActivity}

我想说我的问题在于日志的这一部分(基于我研究过的其他论坛相关问题...),但我不确定:

11-09 10:08:23.090: WARN/InputManagerService(142): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@407f37e0 (uid=10022 pid=238)
11-09 10:08:45.890: WARN/InputManagerService(142): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@40ce5140

卸载的应用程序,重新安装,调试,第二次运行时出现错误日志:

11-09 10:23:59.690: WARN/ActivityManager(142): No content provider found for: 
11-09 10:23:59.700: WARN/PackageParser(142): Unknown element under <manifest>: uses-library at /data/app/vmdl1692687349.tmp Binary XML file line #8
11-09 10:23:59.700: WARN/ActivityManager(142): No content provider found for: 
11-09 10:24:00.730: WARN/ResourceType(273): getEntry failing because entryIndex 1041 is beyond type entryCount 185
11-09 10:24:00.760: WARN/ResourceType(273): Failure getting entry for 0x7f020411 (t=1 e=1041) in package 0 (error -2147483647)
11-09 10:24:00.760: WARN/ResourceType(273): getEntry failing because entryIndex 1042 is beyond type entryCount 185
11-09 10:24:00.760: WARN/ResourceType(273): Failure getting entry for 0x7f020412 (t=1 e=1042) in package 0 (error -2147483647)
11-09 10:24:00.760: WARN/ResourceType(273): getEntry failing because entryIndex 1043 is beyond type entryCount 185
11-09 10:24:00.760: WARN/ResourceType(273): Failure getting entry for 0x7f020413 (t=1 e=1043) in package 0 (error -2147483647)
11-09 10:24:00.760: WARN/ResourceType(273): getEntry failing because entryIndex 1420 is beyond type entryCount 185
11-09 10:24:00.760: WARN/ResourceType(273): Failure getting entry for 0x7f02058c (t=1 e=1420) in package 0 (error -2147483647)
11-09 10:24:00.770: WARN/ResourceType(273): getEntry failing because entryIndex 223 is beyond type entryCount 185
11-09 10:24:00.770: WARN/ResourceType(273): Failure getting entry for 0x7f0200df (t=1 e=223) in package 0 (error -2147483647)
11-09 10:24:01.500: WARN/ActivityThread(5952): Application king.chad.SDE is waiting for the debugger on port 8100...
11-09 10:24:11.330: WARN/ActivityManager(142): Launch timeout has expired, giving up wake lock!
11-09 10:24:11.470: WARN/ActivityManager(142): Activity idle timeout for ActivityRecord{408a9dc8 king.chad.SDE/.MainActivity}
11-09 10:24:14.510: WARN/InputManagerService(142): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@407f37e0 (uid=10022 pid=238)
11-09 10:24:53.730: WARN/InputManagerService(142): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@4090b358

【问题讨论】:

    标签: android get uri android-intent photos


    【解决方案1】:

    嗯,不知道为什么上面的代码不起作用,但我确实找到了解决这个问题的方法。经过大量阅读和搜索,我发现这个问题实际上可能与我的代码无关,而是与我使用的设备有关。我最终通过更改来更改 startActivityForResult() 方法:

    startActivityForResult(i, PIC_REQUEST);
    

    ...到这个:

    startActivityForResult(Intent.createChooser(i, "Select a photo"), PIC_REQUEST);
    

    ...现在一切都很好。希望这对可能遇到相同问题的任何人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-11
      相关资源
      最近更新 更多