Ich habe bereits viele Beiträge gelesen, aber keiner von ihnen hat eine ähnliche Situation.onActivityResult nicht für Fragmentierung für Android API 23
Context
Der folgende Code arbeitet für API 17 fine - 22, aber nicht für die API 23 Der folgende Code innerhalb des Fragments ist.
private void takePicture() {
// identify if the device has camera to decide the next flow of action
PackageManager pm = mContext.getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
Toast.makeText(mContext, R.string.msgPleaseTakePicture2, Toast.LENGTH_LONG).show();
dispatchTakePictureIntent();
}else {
showErrorDialog(getString(R.string.msgErrorPicture));
}
}
private void dispatchTakePictureIntent() {
ContentValues values;
values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, "Doarnf");
values.put(MediaStore.Images.Media.DESCRIPTION, "Doarnf");
imageUri = getActivity().getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
//on ActivityResult method
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
switch (requestCode)
{
case REQUEST_IMAGE_CAPTURE:
getPictureResults(resultCode, intent);
break;
}
}
private void getPictureResults(int resultCode, Intent intent) {
if (resultCode == Activity.RESULT_OK)
{
try {
mImageBitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), imageUri);
mImageBitmap = ImageHelper.scaleBitmapBasedOnHeight(mImageBitmap, 1296);
executeDonation();
} catch (Exception e) {
showErrorDialog(getString(R.string.msgErrorPicture));
}
}else {
showErrorDialog(getString(R.string.msgErrorPicture));
}
}
AndroidManifest.xml
<activity
android:name="br.com.cfb.doarnf.NavigationDrawerActivity"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:launchMode="singleTop"
android:theme="@style/AppDrawer"
android:windowSoftInputMode="adjustPan"
android:screenOrientation="portrait">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="br.com.cfb.doarnf.MainActivity" />
</activity>
Das Problem
Das Problem ist:
Manchmal sind die onActivityResults zurückgerufen wird, aber das Fragment var iables sind verloren.
Manchmal wird OnActivityResults nicht zurückgerufen. Wenn das Bild aufgenommen wurde, erscheint der Android-Hauptbildschirm.
Also angenommen ich, dass es ein Fehler von Android API 23.
Jede Idee ist?
Vielen Dank im Voraus.
Wenn das in Ordnung ist, würde ich den vollständigen Code sehen möchten diese Aktivität/dieses Fragment. Bitte benachrichtigen Sie mich auch. –
Haben Sie dies auf mehreren Geräten/Emulatoren mit SDK 23 getestet? Vielleicht ist der Übeltäter Ihr Gerät, nicht API-Ebene – liminal