一、获取参数

1、注册登录Line开发者账号

在Line官网并找不到注册地方,可以通过Line APP进行注册,注册之后进入Line开发者官网:

2、创建应用

3、创建完成在Channel settings下获取Channel ID和Channel secrt

4、在AppSettings下配置包名和签名

allprojects {

repositories {

...

flatDir {

dirs 'libs'

}

...

}

}

compile(name: 'line_sdk_4.0.8', ext: 'aar')

二、登录实现

1.APP-APP

int REQUEST_CODE=1;

LineApiClient lineApiClient;

LineApiClientBuilder apiBuilder= new LineApiClientBuilder(activity,lineChannelID);

lineApiClient=apiBuilder.build();

if(checkApkExist(activity,"jp.naver.line.android")){//App-to-App

Log.d(tag,"Login-App-to-App");

Intent loginIntent= LineLoginApi.getLoginIntent(activity,lineChannelID);

} else{

//浏览器中的LINE登录界面

Log.d(tag,"Login-web");

loginIntent=LineLoginApi.getLoginIntentWithoutLineAppAuth(activity,lineChannelID);

}

activity.startActivityForResult(loginIntent,REQUEST_CODE);

public void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode != REQUEST_CODE) {

Log.e("ERROR", "Unsupported Request");

return;

}

try {

LineLoginResult result = LineLoginApi.getLoginResultFromIntent(data);

Log.e(tag,"msg="+result.getErrorData().getMessage());

switch (result.getResponseCode()) {

case SUCCESS:

// Login successful

Log.d(tag,"loginSuccess");

String user_id=result.getLineProfile().getUserId();

String user_name=result.getLineProfile().getDisplayName();

String accessToken = result.getLineCredential().getAccessToken().getAccessToken();

break;

case CANCEL:

// Login canceled by user

Log.e(tag, "LINE Login Canceled by user!!");

Log.e(tag,"msg="+result.getErrorData().getMessage());

break;

default:

// Login canceled due to other error

Log.e(tag, "Login FAILED!"+result.getErrorData().toString());

}

}catch (Exception e){

e.printStackTrace();

}

}

//检查是否安装了app

public boolean checkApkExist(Context context, String packageName){

if(packageName==null){

return false;

}

try{

ApplicationInfo applicationInfo=context.getPackageManager()

.getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES);

return true;

}catch (Exception e){

e.printStackTrace();

return false;

}

}

三、分享实现

public void shareToLine(Activity activity,String uriString,String title,String text){

Log.d(tag,"share to Line");

String linePackageName="jp.naver.line.android";

String lineClassName="jp.naver.line.android.activity.selectchat.SelectChatActivityLaunchActivity";

ComponentName componentName=new ComponentName(linePackageName,lineClassName);

Intent shareIntent=new Intent();

shareIntent.setAction(Intent.ACTION_SEND);

Uri uri = Uri.parse(uriString);

shareIntent.putExtra(Intent.EXTRA_STREAM, uri);

// shareIntent.setType("image/jpeg"); //图片分享

shareIntent.setType("text/plain"); // 纯文本

shareIntent.putExtra(Intent.EXTRA_SUBJECT, title);//分享的标题

shareIntent.putExtra(Intent.EXTRA_TEXT, text);//分享内容

shareIntent.setComponent(componentName);//跳到指定APP的Activity

activity.startActivity(Intent.createChooser(shareIntent,""));

}

android line分享代码,Android实现Line登录分享相关推荐

  1. Android应用之——微信微博第三方sdk登录分享使用过程中的一些常见问题

    前言 最近在使用第三方登录和分享的过程中遇到了很多问题,一方面可以归结为自己经验的不足,另一方面其实也说明了官方文档的含糊不清.这篇博文不会写关于如何使用第三方登录分享,因为官方文档已经写明了步骤,这 ...

  2. android qq 分享代码,Android将内容分享到QQ和微信实例代码

    具体代码如下所示: package dmpte.sharewechat; import android.annotation.SuppressLint; import android.app.Acti ...

  3. android微信自定义分享代码,android 调用本地微信自定义多图分享朋友圈,可放在share sdk中一起使用...

    最终的效果图,右下角微信多图为自定义调用系统分享,分享到微信. 在你能正常调用share sdk的时候想在原本的基础上加自定义的分享非常的简单. 它的官网已经给出了代码,但是给的不是很清楚. lz毕竟 ...

  4. android apk安装代码,Android安装APK

    7.0以上安装APK,请自行配置FileProvider,具体不多说 android:name="androidx.core.content.FileProvider" andro ...

  5. android小球移动代码,Android自定义圆形View实现小球跟随手指移动效果

    本文实例为大家分享了Android实现小球跟随手指移动效果的具体代码,供大家参考,具体内容如下 一. 需求功能 手指在屏幕上滑动,红色的小球始终跟随手指移动. 实现的思路: 1)自定义View,在on ...

  6. Android钢琴滑动代码,Android实现简易版弹钢琴效果

    本文实例为大家分享了Android实现弹钢琴效果展示的具体代码,供大家参考,具体内容如下 目标效果: 1.drawable下新建button_selector.xml页面: 2.drawable下新建 ...

  7. android复杂计算器代码,android简单计算器代码

    <android简单计算器代码>由会员分享,可在线阅读,更多相关<android简单计算器代码(9页珍藏版)>请在人人文库网上搜索. 1.package class Calcu ...

  8. android 反注册代码,Android程序反混淆利器——Simplify工具

    本帖最后由 Regan_MX 于 2017-1-25 10:30 编辑 文章难易度:★★★ 文章阅读点/知识点:Android程序反混淆利器 文章作者:desword文章来源:安全客 [技术分享]An ...

  9. Android更新圆点代码,Android实现两圆点之间来回移动加载进度

    本文实例为大家分享了Android实现两圆点之间来回移动加载进度的具体代码,供大家参考,具体内容如下 一.前言 最近喜欢上自定义控件,喜欢实现一些简约有趣的控件,也好巩固下以前学得知识和不断的学习新知 ...

最新文章

  1. Java并发系列—工具类:CountDownLatch
  2. 算法导论之排序和顺序统计学
  3. pagefile.sys
  4. 为什么学Python
  5. 青岛计算机学校分数线,青岛计算机应用与维修专业职业学校收费标准,物联网应用技术中专学校分数线...
  6. linux uuid挂载磁盘_linux-开机自动挂载磁盘简介
  7. Tomcat Https配置
  8. linux下磁盘分区方法详解
  9. 计算机操作系统教程——分区存储管理
  10. 深度置信网络 Deep belief network
  11. “神一般存在”的印度理工学院到底有多牛?
  12. __imp____iob_func和__imp__fprintf
  13. 快捷键大全---windows , idea , linux , 浏览器
  14. 学妹跑过来抱着我的胳膊让我帮她在Linux上装jdk【手把手教学】
  15. 重装系统 SSD+HDD并开启IRST(英特尔快速存储技术)
  16. android批量添加联系人,Android实现批量添加联系人到通讯录
  17. github的tag
  18. CPU性能分析优化套路
  19. Scikit-learn section9 for cvpytorch
  20. 滴答顺风车怎么抢90%以上的订单_顺风车,又来了!!!

热门文章

  1. sql azure 语法_Azure SQL数据同步–在Azure SQL数据库之间复制数据和架构更改
  2. .NET防止重复提交
  3. (转)Faster R-CNN的训练过程的理解
  4. mysqld.exe
  5. Ubuntu14.04下中山大学锐捷上网设置
  6. 终于解决了贴吧手机版的一个重大BUG
  7. 华为内部狂转好文:有关大数据,看这一篇就够了
  8. 将汉字以utf-8方式编码及解码
  9. 调整Linux磁盘分区大小
  10. php jmail 乱码,ASP实例:解决Jmail发送邮件标题出现乱码