Ich habe eine Bildansicht mit Android Intent mit dem folgenden Code.Android Intent zeigt gebrochene Bild in Samsung A3 und zeigt das Bild mit dem gleichen Code in Xiaomi Redmi Note 3
// Bild öffnet in einem Vollbild-Viewer
showImageInViewer (item) {
let uri = '';
let root = android.os.Environment.getExternalStoragePublicDirectory(android.os.Environment.DIRECTORY_PICTURES).getAbsolutePath();
let localPath = fs.path.join(root, "One/media/" + item.value.conversationId);
localPath = fs.path.join(localPath, item.value.localpath+".jpg");
console.log("LocalPath si : " + localPath);
if(fs.File.exists(localPath)){
// console.log("File exist on local");
uri = localPath;
var appModule_1 = require("application");
var intent = new android.content.Intent(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(android.net.Uri.parse(localPath),"image/*");
appModule_1.android.foregroundActivity.startActivity(intent);
} else {
// console.log("File doesn't exist on local");
Toast.makeText("Downloading Image").show();
let image = new ImageModule.Image();
imageSource.fromUrl(item.value.url).then((res: imageSource.ImageSource)=>{
// console.log("Image Loading Successful");
let inputBitmap = android.graphics.Bitmap.createBitmap(res.android);
let nativeFile = void 0;
let tempPictureUri = void 0;
let baos = void 0;
baos = new java.io.ByteArrayOutputStream();
// console.log("Saving Image");
inputBitmap.compress(android.graphics.Bitmap.CompressFormat.JPEG, 100, baos);
let data = baos.toByteArray();
let file = fs.File.fromPath(localPath);
file.writeSync(data, (e) => {
// console.dump(e)
});
inputBitmap.recycle();
// android.media.
var appModule_1 = require("application");
var intent = new android.content.Intent(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(android.net.Uri.parse(localPath),"image/*");
// intent.setAction(android.content.Intent.ACTION_GET_CONTENT);
// intent.setAction(android.content.Intent.ACTION_VIEW);
appModule_1.android.foregroundActivity.startActivity(intent);
}).catch((error)=>{
// console.dump(error);
});
}
}
Das speichert die Bilddatei in der Dateiablage mit einem Pfad ähnlich ist: /storage/emulated/0/Pictures/One/media/-KYjJ_BTfQKI5gmNyl6T/-KZujwQZC6BlScebtpnn-m372.jpg
Das Bild zeigt richtig auf Xiomi Redmi N ote 3 aber öffnet nicht das gleiche Bild in Nexus und Samsung Telefon.
Bitte helfen
Nun, Ihr Xiaomi läuft wahrscheinlich MIUI, die einige Dinge anders macht –
Ich hoffe, dass würde nicht viel Unterschied im Verhalten anderer Android-Funktionen machen –