Sharing Facebook Videos Using Android Share Intent

This issue may look similar, but is in no way related to "sharing video to Facebook using the Facebook sdk" or "sharing plain text or image using sharing intent." I followed these posts on SO ->

Android Facebook account

How to share photos with CAPTION via Android share for Facebook?

and this external link

http://sudarmuthu.com/blog/sharing-content-in-android-using-action_send-intent

and found out about sharing intent in android which can be launched to share images / video / text with an existing sharing app on Android Phone. I used this code to share an image to facebook:

package com.mypackage.share;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;

public class FbshareActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Intent share = new Intent(Intent.ACTION_SEND);
        share.setType("image/jpg");

        share.putExtra(Intent.EXTRA_STREAM,Uri.parse("file:///mnt/sdcard/tutu.jpg"));
        startActivity(Intent.createChooser(share, "Share Image"));
    }
}

      

The manifest file looks like this:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mypackage.share"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".FbshareActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

      

It works great. I can share the image on facebook.

Now I want to upload a video: I replaced this line:        share.setType ("image / jpg");

with this |        share.setType ("video / 3gpp");

and this        share.putExtra (Intent.EXTRA_STREAM, Uri.parse ("** File: ///mnt/sdcard/dimg1333456357958.jpg ")) **; with this share.putExtra (Intent.EXTRA_STREAM, Uri.parse ("** File: ///mnt/sdcard/a123bghy4.3gpp ")) **;

But I am getting this error when I run the code:

/Environment(30996): getExternalStorageState/mnt/sdcard
E/Environment(30996): getExternalStorageList
W/MountService( 2879): getVolumeState(/mnt/sdcard/external_sd): Unknown volume
W/MountService( 2879): getVolumeState(/mnt/sdcard/external_sd): Unknown volume
E/Environment(30996): getExternalStorageState/mnt/sdcard
D/SurfaceFlinger( 2879): [JJ]removeSurface for sid=74 
D/dalvikvm(30996): GC_CONCURRENT freed 1106K, 19% free 8612K/10503K, paused 3ms+5ms
E/SurfaceFlinger( 2879): [JJ]SurfaceFlinger FPS: 24.994677
D/ACRA    (30996): Writing crash report file.
D/ACRA    (30996): Mark all pending reports as approved.
D/ACRA    (30996): Looking for error files in /data/data/com.facebook.katana/app_acra-reports
V/ACRA    (30996): About to start ReportSenderWorker from #handleException
D/ACRA    (30996): Add user comment to null
D/ACRA    (30996): #checkAndSendReports - start
D/ACRA    (30996): Looking for error files in /data/data/com.facebook.katana/app_acra-reports
I/ACRA    (30996): Sending file 1333628258000-approved.stacktrace
D/ACRA    (30996): Connect to https://www.facebook.com/mobile/android_crash_logs/
D/ACRA    (30996): Setting httpPost headers
D/ACRA    (30996): Sending request to https://www.facebook.com/mobile/android_crash_logs/
D/dalvikvm(30996): GC_CONCURRENT freed 631K, 18% free 8644K/10503K, paused 5ms+2ms
W/ResponseProcessCookies(30996): Invalid cookie header: "Set-Cookie: datr=ZY19T4_v6CV68jQn4FTduX_l; expires=Sat, 05-Apr-2014 12:17:41 GMT; path=/; domain=.facebook.com; httponly". Unable to parse expires attribute: Sat
E/SurfaceFlinger( 2879): [JJ]SurfaceFlinger FPS: 4.741684
D/BatteryService( 2879): update start
D/ACRA    (30996): #checkAndSendReports - finish
E/AndroidRuntime(30996): FATAL EXCEPTION: main
E/AndroidRuntime(30996): java.lang.NullPointerException
E/AndroidRuntime(30996):    at com.facebook.katana.service.method.VideoUpload.getRealPathFromURI(VideoUpload.java:144)
E/AndroidRuntime(30996):    at com.facebook.katana.service.method.VideoUpload.start(VideoUpload.java:165)
E/AndroidRuntime(30996):    at com.facebook.katana.binding.AppSession.postToService(AppSession.java:4212)
E/AndroidRuntime(30996):    at com.facebook.katana.service.method.VideoUpload.RequestVideoUpload(VideoUpload.java:73)
E/AndroidRuntime(30996):    at com.facebook.katana.activity.media.UploadVideoActivity.upload(UploadVideoActivity.java:209)
E/AndroidRuntime(30996):    at com.facebook.katana.activity.media.UploadVideoActivity.onClick(UploadVideoActivity.java:169)
E/AndroidRuntime(30996):    at android.view.View.performClick(View.java:3100)
E/AndroidRuntime(30996):    at android.view.View$PerformClick.run(View.java:11644)
E/AndroidRuntime(30996):    at android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime(30996):    at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(30996):    at android.os.Looper.loop(Looper.java:126)
E/AndroidRuntime(30996):    at android.app.ActivityThread.main(ActivityThread.java:4002)
E/AndroidRuntime(30996):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(30996):    at java.lang.reflect.Method.invoke(Method.java:491)
E/AndroidRuntime(30996):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
E/AndroidRuntime(30996):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
E/AndroidRuntime(30996):    at dalvik.system.NativeStart.main(Native Method)
D/SurfaceFlinger( 2879): screenshot: sw=216, sh=135, minZ=0, maxZ=21015
W/ActivityManager( 2879):   Force finishing activity com.facebook.katana/.activity.media.UploadVideoActivity
D/SurfaceFlinger( 2879): screenshot: result = OK
E/android.os.Debug( 2879): Dumpstate > /data/log/dumpstate_app_com_facebook_katana_error
I/dumpstate(31581): begin
W/ActivityManager( 2879): Activity pause timeout for ActivityRecord{40f51e68 com.facebook.katana/.activity.media.UploadVideoActivity}
F//system/bin/logcat(31586): stack corruption detected: aborted
W/PowerManagerService( 2879): Timer 0x3->0x3|0x0
D/VoldCmdListener(   87): asec list
I/dumpstate(31581): done
D/InputTransport( 2879): channel '41014710 Sorry!    - Use *#9900# to take log - (server)' ~ mPointerStates->semaphore initialized 0x586ac000.
D/InputTransport( 2879): channel '41014710 Sorry!    - Use *#9900# to take log - (server)' ~ mPointerStates initialized 0x586ac000.
D/InputTransport( 2879): channel '41014710 Sorry!    - Use *#9900# to take log - (client)' ~ mPointerStates initialized 0x587f1000.
E/SurfaceFlinger( 2879): [JJ]SurfaceFlinger FPS: 0.207880
D/SurfaceFlinger( 2879): [JJ]createSurface for pid 31559 (1280 x 752)
D/SurfaceFlinger( 2879): [JJ]createSurface for pid 2879 (1 x 1)
E/SurfaceFlinger( 2879): [JJ]SurfaceFlinger FPS: 18.909105

      

How can I debug com.facebook.katana? Plz assit. Rgds

+3


source to share


2 answers


Apparently there is a bug -> http://bugs.developers.facebook.net/show_bug.cgi?id=16728 in the intent to share for facebook and I doubt the reason for this is not working. Rgds, Softy



0


source


Try this code.



ContentValues content = new ContentValues(4);
content.put(Video.VideoColumns.DATE_ADDED,
System.currentTimeMillis() / 1000);
content.put(Video.Media.MIME_TYPE, "video/mp4");
content.put(MediaStore.Video.Media.DATA, "video_path");
ContentResolver resolver = getBaseContext().getContentResolver();
Uri uri = resolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, content);

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Title");
sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM,uri);
startActivity(Intent.createChooser(sharingIntent,"share:")); 

      

-1


source







All Articles