Android實現(xiàn)把分享圖片,文字,vcard給自己的app

Android實現(xiàn)分享圖片,文字,vcard給自己的app

android.intent.action.SEND

在manifest中過濾意圖讓自己的app出現(xiàn)在分享列表中

圖片:

要想實現(xiàn)這個功能現(xiàn)在manifest文件中添加想要獲取分享的類型:

         <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            獲取分享的單個圖片
            <!--share img-->
            <intent-filter>
                <action android:name="android.intent.action.SEND" />

                <category android:name="android.intent.category.DEFAULT" />

                <data android:mimeType="image/*" />
            </intent-filter>
            這個是獲取分享的文字
            <!-- share text-->
            <intent-filter>
                <action android:name="android.intent.action.SEND" />

                <category android:name="android.intent.category.DEFAULT" />

                <data android:mimeType="text/plain" />
            </intent-filter>
            獲取分享的多組圖片
            <!--share imgs -->
            <intent-filter>
                <action android:name="android.intent.action.SEND_MULTIPLE" />

                <category android:name="android.intent.category.DEFAULT" />

                <data android:mimeType="image/*" />
            </intent-filter>
            獲取分享的vcard 電話簿 單個的
            <!--  share vcard-->
            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="text/x-vcard" />
            </intent-filter>
        </activity>

然后你的應(yīng)用就會出現(xiàn)在分享列表中了。

在activity中獲取intent拿到分享的數(shù)據(jù)

getIntent()

給大家分享一個庫,(我自己寫的(嘿嘿嘿))。對著幾種分享進行了封裝,使用很簡單,只要在要展示分享內(nèi)容的activit中執(zhí)行一個方法就行了。

ShareToMe.handleShareToMe(this, getIntent(), new ShareToMe.HandleListener() {
           @Override
           public void handleType(String type) {}
          @Override
            public void handleContent(BaseShareData shareData) {}
          @Override
            public void handleError(String e) {}
    
}

具體使用

ShareToMe.handleShareToMe(this, getIntent(), new ShareToMe.HandleListener() {
            /**
             *
             * @param type  Original Sharing Type image/* ,text/plain ,text/x-vcard<p/>
             */
            @Override
            public void handleType(String type) {
                Log.d("Dboy", "type =>" + type);
            }

            /**
             * @param shareData 處理分享數(shù)據(jù)的實體基類
             */
            @Override
            public void handleContent(BaseShareData shareData) {

                Log.d("Dboy", "data =>" + shareData.toString());

                mTextView.setText(shareData.toString());

                if (shareData.isMultipleImagesData()) {

                    ShareMultipleImagesData shareMultipleImagesData =   shareData.getMultipleImagesData();
                    mBaseQuickAdapter.addData(shareMultipleImagesData.getImgPath());

                } else if (shareData.isImageData()) {

                    ShareImageData shareImageData = shareData.getImageData();
                    viewById.setVisibility(View.VISIBLE);
                    String path = shareImageData.getPath();
                    Glide.with(getApplicationContext()).load(path).into(viewById);

                } else if (shareData.isTextData()){
                    ShareTextData textData = shareData.getTextData();

                } else if (shareData.isVCardData()) {
                    ShareVCardData vCardData = shareData.getVCardData();

                }

            }

            /**
             * @param e error
             */
            @Override
            public void handleError(String e) {
                Log.d("Dboy", "error =>" + e);
            }
        });

具體使用,內(nèi)部實現(xiàn)呢,看一下demo,和源碼。

 allprojects {
   repositories {
       ...
       maven { url 'https://jitpack.io' }
   }
 }

 dependencies {
       implementation 'com.github.Dboy233:ShareToMe:3.0'
 }

GitHub地址https://github.com/Dboy233/ShareToMe

效果圖

Gif_20190914_123916.gif
Gif_20190914_124033.gif
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容