Ument
SDK集成
官网
https://developer.umeng.com/docs/66632/detail/66639
依赖
//PushSDK必须依赖utdid库,所以需要加入对应依赖
implementation 'com.umeng.umsdk:utdid:1.1.5.3'
//PushSDK
implementation 'com.umeng.umsdk:push:6.0.1'
权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
推送
Applacation
UMConfigure.init(this,"5d63c8f9570df34c64000891"
,"umeng",UMConfigure.DEVICE_TYPE_PHONE,"2e2ca7472033c34fdbb5c8ee6574cfe7");//58edcfeb310c93091c000be2 5965ee00734be40b580001a0
//获取消息推送代理示例
PushAgent mPushAgent = PushAgent.getInstance(this);
//注册推送服务,每次调用register方法都会回调该接口
mPushAgent.register(new IUmengRegisterCallback() {
@Override
public void onSuccess(String deviceToken) {
//注册成功会返回deviceToken deviceToken是推送消息的唯一标志
Log.e("tag","注册成功:deviceToken:--------> " + deviceToken);
}
@Override
public void onFailure(String s, String s1) {
Log.e("tag","注册失败:--------> " + "s:" + s + ",s1:" + s1);
}
});
代码
PushAgent.getInstance(this).onAppStart();
统计
https://developer.umeng.com/docs/119267/detail/118588
分享
Applacation
UMConfigure.init(this,"5d63c8f9570df34c64000891"
,"umeng",UMConfigure.DEVICE_TYPE_PHONE,"2e2ca7472033c34fdbb5c8ee6574cfe7");//58edcfeb310c93091c000be2 5965ee00734be40b580001a0
PlatformConfig.setWeixin("wxdc1e388c3822c80b", "3baf1193c85774b3fd9d18447d76cab0");
//豆瓣RENREN平台目前只能在服务器端配置
PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad","http://sns.whalecloud.com");
PlatformConfig.setYixin("yxc0614e80c9304c11b0391514d09f13bf");
PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
PlatformConfig.setTwitter("3aIN7fuF685MuZ7jtXkQxalyi", "MK6FEYG63eWcpDFgRYw4w9puJhzDl0tyuqWjZ3M7XJuuG7mMbO");
PlatformConfig.setAlipay("2015111700822536");
PlatformConfig.setLaiwang("laiwangd497e70d4", "d497e70d4c3e4efeab1381476bac4c5e");
PlatformConfig.setPinterest("1439206");
PlatformConfig.setKakao("e4f60e065048eb031e235c806b31c70f");
PlatformConfig.setDing("dingoalmlnohc0wggfedpk");
PlatformConfig.setVKontakte("5764965","5My6SNliAaLxEm3Lyd9J");
PlatformConfig.setDropbox("oz8v5apet3arcdy","h7p2pjbzkkxt02a");
代码
UMImage umImage=new UMImage(this,new File("文件名"));
new ShareAction(MainActivity.this).withMedia(umImage).setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)
.setCallback(this).open();
}
@Override
public void onStart(SHARE_MEDIA share_media) {
}
@Override
public void onResult(SHARE_MEDIA share_media) {
}
@Override
public void onError(SHARE_MEDIA share_media, Throwable throwable) {
Log.e("#########",throwable.getMessage()+"");
}
@Override
public void onCancel(SHARE_MEDIA share_media) {
}
腾讯云
SDK集成
https://cloud.tencent.com/document/product/454/7877
依赖
implementation 'com.tencent.liteavsdk:LiteAVSDK_Smart:latest.release'
权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-feature android:name="android.hardware.Camera"/>
<uses-feature android:name="android.hardware.camera.autofocus" />
<application
android:name=".MyApplacation"
android:usesCleartextTraffic="true"
推流
Applacation
public class MyApplacation extends Application {
@Override
public void onCreate() {
super.onCreate();
String licenceURL = "http://license.vod2.myqcloud.com/license/v1/d3b6f7c00a7f736b13fde2b0e66fd1e7/TXLiveSDK.licence"; // 获取到的 licence url
String licenceKey = "08ca1f66b4919b0fe7c7081eec9bca69"; // 获取到的 licence key
TXLiveBase.getInstance().setLicence(this, licenceURL, licenceKey);
}
}
代码
TXLivePusher mLivePusher;
Button bt,bt2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] str=new String[]{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION};
if(Build.VERSION.SDK_INT>=23){
if(ActivityCompat.checkSelfPermission(this,Manifest.permission.ACCESS_FINE_LOCATION)!=PackageManager.PERMISSION_GRANTED){
requestPermissions(str,101);
}
}
bt=findViewById(R.id.bt);
bt2=findViewById(R.id.bt2);
TXLivePushConfig mLivePushConfig = new TXLivePushConfig();
mLivePusher = new TXLivePusher(MainActivity.this);
TXCloudVideoView mPusherView = (TXCloudVideoView) findViewById(R.id.pusher_tx_cloud_view);
// 一般情况下不需要修改 config 的默认配置
mLivePusher.setConfig(mLivePushConfig);
//启动本地摄像头预览
mLivePusher.startCameraPreview(mPusherView);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String rtmpURL = "rtmp://56674.livepush.myqcloud.com/live/ddd?txSecret=b4f6a96cba73e6df582a5ffe6a266668&txTime=5D6401FF"; //此处填写您的 rtmp 推流地址
int ret = mLivePusher.startPusher(rtmpURL.trim());
if (ret == -5) {
Log.e("tag", "startRTMPPush: license 校验失败");
}
}
});
拉流
代码
TXCloudVideoView mPusherView2 = (TXCloudVideoView) findViewById(R.id.pusher_tx_cloud_view2);
//创建 player 对象
final TXLivePlayer mLivePlayer = new TXLivePlayer(this);
//关键 player 对象与界面 view
mLivePlayer.setPlayerView(mPusherView2);
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String flvUrl = "https://56674.liveplay.myqcloud.com/live/ddd.flv";
mLivePlayer.startPlay(flvUrl, TXLivePlayer.PLAY_TYPE_LIVE_FLV); //推荐 FLV
}
});