我从一个片段调用了ACTION IMAGE CAPTURE意图,我在同一个片段中实现了onActivityResult()
但是在使用我的note2设备运行时没有触发onActivityResult。检查下面我使用的代码片段。
我不使用
时工作正常 import android.support.v4
我打开片段的活动
public class HomeActivity extends FragmentActivity {
我称之为Camera Intent的片段
public class SaveCardFragment extends Fragment {
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 1888;
...
调用相机意图
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent,CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
...
检测活动结果的功能
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d("Result", ""+requestCode);
}
AndroidManifest中的配置
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera"/>
<application
android:allowBackup="true" android:icon="@drawable/ic_launcher"
android:label="@string/app_name" android:theme="@style/AppTheme"
>
<activity android:name=".HomeActivity" android:label="@string/title_activity_home"/>
答案 0 :(得分:1)
我从片段(...)
调用了ACTION IMAGE CAPTURE意图
这不是真的。请查看以下代码行:
getActivity().startActivityForResult(SaveCardFragment.this,intent,CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
需要注意的是,您在托管活动(startActivityForResult()
)上调用HomeActivity
,而不是片段(SaveCardFragment
),因此结果会传递给活动而不会传播进一步。如果您希望将结果传递给片段,请确保在片段上调用startActivityForResult()
。换句话说,只需摆脱getActivity()
前缀:
startActivityForResult(SaveCardFragment.this,intent,CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);