New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Share Video on Android #616
Comments
Hello @JanOwiesniak do you have any reproducible repository? |
Only tested it on Android so far. Will test it on iOS tomorrow to confirm if this is a platform specific issue or not. In my opinion it should not matter if the video was recorded before or if this is any other video file because I can open it with any regular video player so it should not be broken. But sure, i will test this as well to clear this up. Do I need any specific permissions to use this library? Currently i‘m asking for external write and read permissions during runtime (probably not even required). Another thing which was not clear to me was the file provider section at the end of the README. Do I need to implement this as well or is this purely optional? Am I using the API correctly? Does the url parameter looks correct to you? file://filePath Could base64 solve the issue? I‘m afraid of running into memory issues here because the video files are pretty large. |
Nice File path seems right: https://github.com/react-native-community/react-native-share#url-format-when-sharing-a-file |
@jgcmarins talking about the permissions, does this mean the optional step 5 (Optional) Follow this for implementing Provider in the in Android section is not optional but mandatory to share files local files? If this is the case, this might be the issue here because i have not implemented it yet. |
Next Steps
Works with base64 (see comment below) |
Sharing images to Instagram, Drive, etc results on the same error @JanOwiesniak ? Did you tried removing the |
I seems like the video file is not the issue here but the I successfully tested it with the video file. let filePath = RNFS.DocumentDirectoryPath + "/share.mp4";
RNFS.readFile(filePath, 'base64')
.then(base64 =>{
let fileType = 'video/mp4'
let base64Data = `data:${fileType};base64,` + base64; // this works as url parameter
let fileUrl = "file://" + filePath; // using this as url does not work
let shareOptions = {
url: base64Data,
type: fileType
}
// call Share.open with shareOptions works with base64Data but not with fileUrl
}); And with an image file as well let filePath = RNFS.ExternalDirectoryPath + "/test.jpg";
RNFS.readFile(filePath, 'base64')
.then(base64 =>{
let fileType = 'image/jpeg'
let base64Data = `data:${fileType};base64,` + base64; // this works as url parameter
let fileUrl = "file://" + filePath; // using this as url does not work
let shareOptions = {
url: base64Data
}
// call Share.open with shareOptions works with base64Data but not with fileUrl
}); The approach is "good enough" for image files but encoding a video file into base64 is no option here because videos can be up to 30 seconds and encoding it into base64 before sharing it is extremely slow (works but takes several seconds to process on my Nokia 6 test device). So let's go back to the My current resolved
Is anything wrong with it? Do i need to setup an optional file provider as mentioned in the README to use the |
Hey @MateusAndrade and @jgcmarins thanks for your input so far! Here is a side-by-side example including logcat where i use base64 and filePath as url. base64 works like expected (file can be shared) where filePath returns with an error that file was not found. Logs look same to me. I can see no errors. Maybe you can spot something? base64 - Exampleconsole.log("recordDone");
let originalFilePath = hander.data.fileUri;
let shareableFilePath = RNFS.DocumentDirectoryPath + "/share.mp4";
RNFS.moveFile(originalFilePath, shareableFilePath).then(result => {
console.log('RNFS.moveFile: ', originalFilePath, shareableFilePath);
RNFS.stat(shareableFilePath).then(result => {
let filePath = result.path
if(RNFS.exists(filePath)){
console.log("RNFS.stat: ", filePath)
RNFS.readFile(filePath, 'base64')
.then(base64 =>{
console.log("RNFS.readFile: ", base64)
let type = 'video/mp4'
let base64Data = `data:${type};base64,` + base64;
let fileData = "file://" + filePath;
console.log("base64Data: ", base64Data)
console.log("fileData: ", fileData)
let shareOptions = {
url: base64Data, // NOTE: base64Data can be shared via Instagram and Co.
type: 'video/mp4',
}
console.log("Share.open: ", shareOptions)
Share.open(shareOptions)
.then((res) => {
if(res && res.app){
console.log("Share.open#done: ", res)
var params = { target_id: this.state.lastKnownTarget, via: res.app, current_screen: "ARScreen"};
logEvent("share_video_success", params);
}
})
.catch((err) => {
if(err && err.error){
console.log("Share.open#error: ", err)
var params = { target_id: this.state.lastKnownTarget, error: err.error, current_screen: "ARScreen"};
logEvent("share_video_error", params);
}
});
});
} else {
console.log("file does not exist: ", shareableFilePath)
}
})
})
.catch(err => {
console.log(err);
}); Logs1. Record & open share dialog2019-11-01 10:21:12.488 18395-18478/app.myapp I/ReactNativeJS: recordDone
2019-11-01 10:21:12.543 18395-18478/app.myapp I/ReactNativeJS: 'RNFS.moveFile: ', '/storage/emulated/0/Android/data/app.myapp/files/recording_2019_11_01_10_21_08_735.mp4', '/data/user/0/app.myapp/files/share.mp4'
2019-11-01 10:21:12.549 18395-18478/app.myapp I/ReactNativeJS: 'RNFS.stat: ', '/data/user/0/app.myapp/files/share.mp4'
2019-11-01 10:21:12.623 18395-18478/app.myapp I/ReactNativeJS: 'RNFS.readFile: ', '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
2019-11-01 10:21:12.676 18395-18478/app.myapp I/ReactNativeJS: 'base64Data: ', 'data:video/mp4;base64,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
2019-11-01 10:21:12.677 18395-18478/app.myapp I/ReactNativeJS: 'fileData: ', 'file:///data/user/0/app.myapp/files/share.mp4'
2019-11-01 10:21:12.705 18395-18478/app.myapp I/ReactNativeJS: 'Share.open: ', { url: 'data:video/mp4;base64,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
2019-11-01 10:21:12.871 18395-19314/app.myapp V/FA: Recording user engagement, ms: 67630
2019-11-01 10:21:12.874 18395-19314/app.myapp V/FA: Connecting to remote service
2019-11-01 10:21:12.884 18395-19314/app.myapp V/FA: Activity paused, time: 2624687
2019-11-01 10:21:12.896 18395-19314/app.myapp D/FA: Logging event (FE): user_engagement(_e), Bundle[{firebase_event_origin(_o)=auto, engagement_time_msec(_et)=67630, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=3787211961682570463}]
2019-11-01 10:21:12.928 18395-18405/app.myapp W/System: A resource failed to call close.
2019-11-01 10:21:12.944 18395-18542/app.myapp I/Unity: Stop Vuforia Engine
Vuforia.VuforiaARController:StopVuforia()
Vuforia.VuforiaARController:OnApplicationPause(Boolean)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Delegate:DynamicInvokeImpl(Object[])
Vuforia.DelegateHelper:InvokeDelegate(Delegate, Object[])
Vuforia.DelegateHelper:InvokeWithExceptionHandling(Action`1, T)
(Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
2019-11-01 10:21:12.951 18395-18478/app.myapp I/ReactNativeJS: IdleScreen#componentDidMount
2019-11-01 10:21:12.959 18395-19314/app.myapp V/FA: Connection attempt already in progress
2019-11-01 10:21:12.970 18395-19314/app.myapp D/FA: Logging event (FE): idle, Bundle[{current_screen=IdleScreen, firebase_event_origin(_o)=app, location=0}]
2019-11-01 10:21:12.974 18395-18478/app.myapp I/ReactNativeJS: NetworkDialog#componentWillReceiveProps: true
2019-11-01 10:21:13.011 18395-19314/app.myapp V/FA: Connection attempt already in progress
2019-11-01 10:21:13.036 18395-18478/app.myapp I/ReactNativeJS: NetworkDialog#componentWillReceiveProps: true
2019-11-01 10:21:13.208 18395-18395/app.myapp W/Binder:18395_4: type=1400 audit(0.0:3251): avc: denied { read } for name="u:object_r:vendor_camera_prop:s0" dev="tmpfs" ino=17788 scontext=u:r:untrusted_app:s0:c107,c259,c512,c768 tcontext=u:object_r:vendor_camera_prop:s0 tclass=file permissive=0
2019-11-01 10:21:13.217 18395-18536/app.myapp E/libc: Access denied finding property "vendor.camera.aux.packagelist"
2019-11-01 10:21:13.218 18395-18395/app.myapp W/Binder:18395_4: type=1400 audit(0.0:3252): avc: denied { read } for name="u:object_r:vendor_camera_prop:s0" dev="tmpfs" ino=17788 scontext=u:r:untrusted_app:s0:c107,c259,c512,c768 tcontext=u:object_r:vendor_camera_prop:s0 tclass=file permissive=0
2019-11-01 10:21:13.228 18395-18536/app.myapp E/libc: Access denied finding property "vendor.camera.aux.packagelist"
2019-11-01 10:21:13.235 18395-18542/app.myapp D/AR: RenderManager: Could not retrieve a valid GLSurfaceView in view hierarchy, therefore cannot set any render mode
2019-11-01 10:21:13.519 18395-18542/app.myapp I/AR: Vuforia paused.
2019-11-01 10:21:13.586 18395-19059/app.myapp D/AudioTrack: stop() called with 1640448 frames delivered
2019-11-01 10:21:13.677 18395-18454/app.myapp I/OpenGLRenderer: Davey! duration=798ms; Flags=0, IntendedVsync=2624696787873, Vsync=2625463454509, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=2625481193736, AnimationStart=2625481240455, PerformTraversalsStart=2625482399309, DrawStart=2625483038371, SyncQueued=2625487141705, SyncStart=2625487253632, IssueDrawCommandsStart=2625487586340, SwapBuffers=2625493727434, FrameCompleted=2625495078840, DequeueBufferDuration=477000, QueueBufferDuration=497000,
2019-11-01 10:21:13.686 18395-19314/app.myapp D/FA: Connected to remote service
2019-11-01 10:21:13.690 18395-19314/app.myapp V/FA: Processing queued up service tasks: 3
2019-11-01 10:21:18.791 18395-19314/app.myapp V/FA: Inactivity, disconnecting from the service 2. Interacted with open share dialog by selecting Share via Instagram Feed2019-11-01 10:22:47.254 18395-18478/app.myapp I/ReactNativeJS: 'Share.open#done: ', { app: 'com.instagram.android/com.instagram.share.handleractivity.ShareHandlerActivity',
message: 'com.instagram.android/com.instagram.share.handleractivity.ShareHandlerActivity' }
2019-11-01 10:22:47.270 18395-19484/app.myapp W/FA: Param value can't be null: target_id
2019-11-01 10:22:47.271 18395-19484/app.myapp D/FA: Logging event (FE): share_video_success, Bundle[{current_screen=ARScreen, firebase_event_origin(_o)=app, via=com.instagram.android/com.instagram.share.handleractivity.ShareHandlerActivity}]
2019-11-01 10:22:47.428 18395-19484/app.myapp V/FA: Connecting to remote service
2019-11-01 10:22:47.439 18395-19484/app.myapp D/FA: Connected to remote service
2019-11-01 10:22:47.440 18395-19484/app.myapp V/FA: Processing queued up service tasks: 1 -> Instagram opens with the previously recorded video filePath - Exampleconsole.log("recordDone");
let originalFilePath = hander.data.fileUri;
let shareableFilePath = RNFS.DocumentDirectoryPath + "/share.mp4";
RNFS.moveFile(originalFilePath, shareableFilePath).then(result => {
console.log('RNFS.moveFile: ', originalFilePath, shareableFilePath);
RNFS.stat(shareableFilePath).then(result => {
let filePath = result.path
if(RNFS.exists(filePath)){
console.log("RNFS.stat: ", filePath)
RNFS.readFile(filePath, 'base64')
.then(base64 =>{
console.log("RNFS.readFile: ", base64)
let type = 'video/mp4'
let base64Data = `data:${type};base64,` + base64;
let fileData = "file://" + filePath;
console.log("base64Data: ", base64Data)
console.log("fileData: ", fileData)
let shareOptions = {
url: fileData, // NOTE: fileData can NOT be shared via Instagram and Co.
type: 'video/mp4',
}
console.log("Share.open: ", shareOptions)
Share.open(shareOptions)
.then((res) => {
if(res && res.app){
console.log("Share.open#done: ", res)
var params = { target_id: this.state.lastKnownTarget, via: res.app, current_screen: "ARScreen"};
logEvent("share_video_success", params);
}
})
.catch((err) => {
if(err && err.error){
console.log("Share.open#error: ", err)
var params = { target_id: this.state.lastKnownTarget, error: err.error, current_screen: "ARScreen"};
logEvent("share_video_error", params);
}
});
});
} else {
console.log("file does not exist: ", shareableFilePath)
}
})
})
.catch(err => {
console.log(err);
}); Logs1. Record & open share dialog2019-11-01 10:27:19.949 20975-21060/app.myapp I/ReactNativeJS: recordDone
2019-11-01 10:27:19.969 20975-21060/app.myapp I/ReactNativeJS: 'RNFS.moveFile: ', '/storage/emulated/0/Android/data/app.myapp/files/recording_2019_11_01_10_27_18_319.mp4', '/data/user/0/app.myapp/files/share.mp4'
2019-11-01 10:27:19.990 20975-21060/app.myapp I/ReactNativeJS: 'RNFS.stat: ', '/data/user/0/app.myapp/files/share.mp4'
2019-11-01 10:27:20.009 20975-21060/app.myapp I/ReactNativeJS: 'RNFS.readFile: ', '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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2019-11-01 10:27:20.010 20975-21060/app.myapp I/ReactNativeJS: 'base64Data: ', 'data:video/mp4;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2019-11-01 10:27:20.010 20975-21060/app.myapp I/ReactNativeJS: 'fileData: ', 'file:///data/user/0/app.myapp/files/share.mp4'
2019-11-01 10:27:20.012 20975-21060/app.myapp I/ReactNativeJS: 'Share.open: ', { url: 'file:///data/user/0/app.myapp/files/share.mp4',
type: 'video/mp4' }
2019-11-01 10:27:20.065 20975-21008/app.myapp V/FA: Recording user engagement, ms: 18728
2019-11-01 10:27:20.067 20975-21008/app.myapp V/FA: Connecting to remote service
2019-11-01 10:27:20.080 20975-21008/app.myapp V/FA: Activity paused, time: 2991880
2019-11-01 10:27:20.102 20975-21008/app.myapp D/FA: Logging event (FE): user_engagement(_e), Bundle[{firebase_event_origin(_o)=auto, engagement_time_msec(_et)=18728, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=-1009789768711454365}]
2019-11-01 10:27:20.132 20975-21060/app.myapp I/ReactNativeJS: IdleScreen#componentDidMount
2019-11-01 10:27:20.136 20975-21095/app.myapp I/Unity: Stop Vuforia Engine
Vuforia.VuforiaARController:StopVuforia()
Vuforia.VuforiaARController:OnApplicationPause(Boolean)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Delegate:DynamicInvokeImpl(Object[])
Vuforia.DelegateHelper:InvokeDelegate(Delegate, Object[])
Vuforia.DelegateHelper:InvokeWithExceptionHandling(Action`1, T)
(Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
2019-11-01 10:27:20.161 20975-21008/app.myapp V/FA: Connection attempt already in progress
2019-11-01 10:27:20.170 20975-21060/app.myapp I/ReactNativeJS: NetworkDialog#componentWillReceiveProps: true
2019-11-01 10:27:20.180 20975-21008/app.myapp D/FA: Logging event (FE): idle, Bundle[{current_screen=IdleScreen, firebase_event_origin(_o)=app, location=0}]
2019-11-01 10:27:20.226 20975-21008/app.myapp V/FA: Connection attempt already in progress
2019-11-01 10:27:20.235 20975-21060/app.myapp I/ReactNativeJS: NetworkDialog#componentWillReceiveProps: true
2019-11-01 10:27:20.414 20975-21161/app.myapp E/libc: Access denied finding property "vendor.camera.aux.packagelist"
2019-11-01 10:27:20.408 20975-20975/app.myapp W/Binder:20975_5: type=1400 audit(0.0:3665): avc: denied { read } for name="u:object_r:vendor_camera_prop:s0" dev="tmpfs" ino=17788 scontext=u:r:untrusted_app:s0:c107,c259,c512,c768 tcontext=u:object_r:vendor_camera_prop:s0 tclass=file permissive=0
2019-11-01 10:27:20.418 20975-20975/app.myapp W/Binder:20975_5: type=1400 audit(0.0:3666): avc: denied { read } for name="u:object_r:vendor_camera_prop:s0" dev="tmpfs" ino=17788 scontext=u:r:untrusted_app:s0:c107,c259,c512,c768 tcontext=u:object_r:vendor_camera_prop:s0 tclass=file permissive=0
2019-11-01 10:27:20.424 20975-21161/app.myapp E/libc: Access denied finding property "vendor.camera.aux.packagelist"
2019-11-01 10:27:20.437 20975-21095/app.myapp D/AR: RenderManager: Could not retrieve a valid GLSurfaceView in view hierarchy, therefore cannot set any render mode
2019-11-01 10:27:20.496 20975-21095/app.myapp I/AR: Vuforia paused.
2019-11-01 10:27:20.540 20975-21132/app.myapp D/AudioTrack: stop() called with 348160 frames delivered
2019-11-01 10:27:20.637 20975-21008/app.myapp D/FA: Connected to remote service
2019-11-01 10:27:20.639 20975-21008/app.myapp V/FA: Processing queued up service tasks: 3
2019-11-01 10:27:25.701 20975-21008/app.myapp V/FA: Inactivity, disconnecting from the service 2. Interacted with open share dialog by selecting Share via Instagram Feed2019-11-01 10:27:51.162 20975-21060/app.myapp I/ReactNativeJS: 'Share.open#done: ', { app: 'com.instagram.android/com.instagram.share.handleractivity.ShareHandlerActivity',
message: 'com.instagram.android/com.instagram.share.handleractivity.ShareHandlerActivity' }
2019-11-01 10:27:51.185 20975-21008/app.myapp W/FA: Param value can't be null: target_id
2019-11-01 10:27:51.188 20975-21008/app.myapp D/FA: Logging event (FE): share_video_success, Bundle[{current_screen=ARScreen, firebase_event_origin(_o)=app, via=com.instagram.android/com.instagram.share.handleractivity.ShareHandlerActivity}]
2019-11-01 10:27:51.251 20975-21008/app.myapp V/FA: Connecting to remote service
2019-11-01 10:27:51.266 20975-21008/app.myapp D/FA: Connected to remote service
2019-11-01 10:27:51.268 20975-21008/app.myapp V/FA: Processing queued up service tasks: 1
2019-11-01 10:27:56.322 20975-21008/app.myapp V/FA: Inactivity, disconnecting from the service -> Instagram opens with an error message saying "Video can not be found" I will try the above mentioned "optional" provider approach in the README now and will let you know if this helps. |
I implemented a
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="app.myapp.provider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="Download" path="Download/" />
</paths>
import cl.json.ShareApplication;
public class MainApplication extends Application implements ShareApplication, ReactApplication {
...
} And added a static testfile let contentPath = "content://app.myapp.provider/Download/share.mp4";
let type = 'video/mp4'
let shareOptions = {
url: contentPath,
type: type,
}
Share.open(shareOptions).then((res) => {
if(res && res.app){
console.log("Share.open#done: ", res)
var params = { target_id: this.state.lastKnownTarget, via: res.app, current_screen: "ARScreen"};
logEvent("share_video_success", params);
}
}) Running into the same issue: -> Instagram opens with an error message saying "Video can not be found" Could this be related to some kind of file permission issues? Running out of options on this ... |
Found the issue. It is somehow important where the file is located. Changing this line of code from: let shareableFilePath = RNFS.DocumentDirectoryPath + "/share.mp4"; to let shareableFilePath = RNFS.CachesDirectoryPath + "/share.mp4"; and thereby reading the file from the cache instead of the internal / external storage fixed the bug. Is this a known constraint / issue? If yes this should be mentioned in the README because it costs me a couple of days to figure this out. |
@JanOwiesniak we'd love if you could help us updating our README |
@JanOwiesniak I'm trying to use the same code but in this line RNFS.readFile(filePath, 'base64') the app freeze and close without error, do you know why or give me a full example, I'm suffering the same problem I trying to share a video on android from my gallery without luck |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. You may also mark this issue as a "discussion" and i will leave this open. |
Closing this issue after a prolonged period of inactivity. Fell free to reopen this issue, if this still affecting you. |
I'm recording a mp4 video (Screen Capture) on Android which i want to share with others.
Not sure what i'm doing wrong but whatever i choose (Instagram, Google Drive, Email, ...), the share dialog closes with a message similar to "error during upload: contains no data" (depending on the app i wanted to share the file with).
Any help appreciated.
Code Example
Console Output
The text was updated successfully, but these errors were encountered: