您的位置:首页 > 移动开发

android开发之分享App模块

2015-03-11 16:58 363 查看
最近,老大要我把项目中有的共用代码抽取成一个个独立的模块,为了以后的复用,那么,现在我将我半个小时的成果分享给大家–“分享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 android:name=“.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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 分享App