android开发之分享App模块

来源:互联网 发布:人过五十知天命感慨 编辑:程序博客网 时间:2024/04/18 23:48

最近,老大要我把项目中有的共用代码抽取成一个个独立的模块,为了以后的复用,那么,现在我将我半个小时的成果分享给大家–“分享App”。

这里写图片描述

第零步:下载第三方jar,并导入至项目:http://pan.baidu.com/s/1hqjCtZu 提取密码:od1l

第一步:布局

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:orientation="vertical"              android:layout_width="fill_parent"              android:layout_height="fill_parent"              android:background="#ffffff">    <TextView            android:id="@+id/tv_share"            android:layout_width="fill_parent"            android:layout_height="50dp"            android:background="@drawable/textview_seletor"            android:text="分享给好友"            android:layout_marginLeft="15dp"            android:layout_marginRight="15dp"            android:gravity="center"            android:textColor="@drawable/textview_color_selector"            android:layout_marginTop="100dp"            /></RelativeLayout>

第二步:实现分享App代码

public class MyActivity extends Activity {    // 分享    private FrontiaSocialShare mSocialShare;    private FrontiaSocialShareContent mImageContent;    private Toast toast;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        toast = Toast.makeText(this,"",Toast.LENGTH_SHORT);        initShare();        this.findViewById(R.id.tv_share).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                mSocialShare.show(MyActivity.this.getWindow().getDecorView(), mImageContent, FrontiaSocialShare.FrontiaTheme.LIGHT, new ShareListener());            }        });    }    private void initShare() {        Frontia.init(this.getApplicationContext(), Conf.APIKEY); //自定义        mImageContent = new FrontiaSocialShareContent();        mSocialShare = Frontia.getSocialShare();        mSocialShare.setContext(this);        mSocialShare.setClientId(FrontiaAuthorization.MediaType.SINAWEIBO.toString(), Conf.SINA_APP_KEY);        mSocialShare.setClientId(FrontiaAuthorization.MediaType.QZONE.toString(), Conf.QQ_APP_KEY);        mSocialShare.setClientId(FrontiaAuthorization.MediaType.QQFRIEND.toString(), Conf.QQ_APP_KEY);        mSocialShare.setClientName(FrontiaAuthorization.MediaType.QQFRIEND.toString(), getResources().getString(R.string.app_name));        mSocialShare.setClientId(FrontiaAuthorization.MediaType.WEIXIN.toString(), Conf.WEIXIN_APP_KEY);        mSocialShare.setClientId(FrontiaAuthorization.MediaType.RENREN.toString(), Conf.RENREN_APP_KEY);        mSocialShare.setClientId(FrontiaAuthorization.MediaType.KAIXIN.toString(), Conf.KAIXIN_APP_KEY);        mSocialShare.setClientId(FrontiaAuthorization.MediaType.QQWEIBO.toString(), Conf.QQWEIBO_APP_KEY);        mImageContent.setTitle("共和国客户端"); //自定义        mImageContent.setContent("共和国客户端  http://china.com/app/"); //自定义        mImageContent.setImageData(BitmapFactory.decodeResource(getResources(), R.drawable.ghg)); //自定义        mImageContent.setLinkUrl(Conf.LINK_URL); //自定义    }    private class ShareListener implements FrontiaSocialShareListener {        @Override        public void onSuccess() {            toast.setText("分享成功");            toast.show();        }        @Override        public void onFailure(int errCode, String errMsg) {            toast.setText("分享失败");            toast.show();        }        @Override        public void onCancel() {            toast.setText("取消分享");            toast.show();        }    }}

第三步:引用了配置文件

public class Conf {    //share key    public final static String APIKEY = "申请的Key";    // social demo    public final static String QQ_APP_KEY = "101037845";    public final static String WEIXIN_APP_KEY = "wx1c6097ebac17f924";    public final static String KAIXIN_APP_KEY = "100059024";    public final static String RENREN_APP_KEY = "265443";    public final static String SINA_APP_KEY = "430833150";    public final static String QQWEIBO_APP_KEY = "801487388";    public final static String LINK_URL = "链接地址";    // personal file storage demo    public final static String PERSON_STORAGE_DIR_NAME = "/apps/FrontiaDevDemo/pic";    public final static String PERSON_STORAGE_FILE_NAME = "/apps/FrontiaDevDemo/pic/custom.jpg";    public final static String LOCAL_FILE_NAME = "/sdcard/Download/custom.jpg";    public final static String FILE1 = "/sdcard/Download/custom.jpg";    public final static String FILE2 = "/sdcard/Download/custom.jpg";    public final static String FILE3 = "/sdcard/Download/custom.jpg";    // app file storage demo    public final static String APP_STORAGE_FILE_NAME = "custom.jpg";    // statistics demo    public static final String eventId = "1";// 提醒    public static final String reportId = "fd4278e8f6";}

第四步:创建一个类继承FrontiaAppliation

/** * Created by ZaneLove on 2015/3/11. */public class ShareApplication extends FrontiaApplication {}

第五步:清单文件配置

  • 添加权限
  • 配置< application android:name=“.ShareApplication ”… />
  • 配置< activity … />
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"          package="com.zanelove.ShareAppDemo"          android:versionCode="1"          android:versionName="1.0">    <uses-sdk android:minSdkVersion="8"/>    //添加权限    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>    <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    <uses-permission android:name="android.permission.GET_TASKS" />    <application            //配置< application androidname=“.ShareApplication... />            android:name=".ShareApplication"            android:label="@string/app_name"            android:icon="@drawable/ghg">        <activity android:name="MyActivity"                  android:label="@string/app_name">            <intent-filter>                <action android:name="android.intent.action.MAIN"/>                <category android:name="android.intent.category.LAUNCHER"/>            </intent-filter>        </activity>        <!-- share -->        //配置< activity ... />        <activity                android:name="com.baidu.frontia.activity.share.FrontiaSocialOAuthActivity"                android:exported="true"                android:screenOrientation="portrait"                android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" >        </activity>        <activity                android:name="com.baidu.frontia.activity.share.FrontiaLocalShareActivity"                android:launchMode="singleTask" >        </activity>        <activity               android:name="com.baidu.frontia.activity.share.FrontiaQQFriendShareReceiverActivity"                android:launchMode="singleTask" >            <intent-filter>                <action android:name="android.intent.action.VIEW" />                <category android:name="android.intent.category.DEFAULT" />                <category android:name="android.intent.category.BROWSABLE" />                <data android:scheme="tencent100581272" />            </intent-filter>        </activity>    </application></manifest>

示例代码戳Here

0 0
原创粉丝点击