zoukankan      html  css  js  c++  java
  • Unity调用Android的API实现分享功能<转>

    问题:

    如何在unity3d的游戏中实现分享功能,如图

    思路:

    1、分享功能的实现方式有多种,较方便快捷的一种是直接调用androidAPI来调出系统的分享界面

    2unity3d里面调用androidAPI需要为此编写一个android的插件

    3、在插件(androidjar包)里面调用Intent类来实现Activity间的消息传递,换出系统的分享控制台

    代码:

    Android插件代码

    1 package com.XXX.XXX;

    2

    3 import android.content.Intent;

    4 import android.os.Bundle;

    5 import com.unity3d.player.UnityPlayerActivity;

    6

    7 public class MainActivity extends UnityPlayerActivity {

    8

    9 @Override

    10 protected void onCreate(Bundle savedInstanceState) {

    11 super.onCreate(savedInstanceState);

    12

    13 }

    14

    15 public void onPress(String msg)

    16 {

    17 Intent shareInt = new Intent(Intent.ACTION_SEND);

    18 shareInt.setType("text/plain");

    19 shareInt.putExtra(Intent.EXTRA_SUBJECT, "选择分享方式");

    20 shareInt.putExtra(Intent.EXTRA_TEXT, msg); // 要分享的内容

    21 shareInt.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    22

    23 startActivity(Intent.createChooser(shareInt, getTitle()));

    24 }

    25 }

    unity3d调用代码

    1 void OnGUI()

    2 {

    3 if (GUILayout.Button("Send WeChat", GUILayout.Height(200)))

    4 {

    5 AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

    6 AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");

    7 jo.Call("onPress", new object[] {"这游戏真好玩,快来下载吧!"});

    8 }

    9 }

  • 相关阅读:
    Mysql经常使用函数
    ZOJ 3690 Choosing number
    cocos2d-x 多触点监听
    ansible不配ssh连接,用户密码登录
    Ansible Role
    关闭centos自动升级内核
    让外部网络访问K8S service的四种方式
    Hadoop实战:Hadoop分布式集群部署(一)
    Docker:搭建私有仓库(Registry 2.4)
    Docker下的Spring Cloud三部曲之一:极速体验
  • 原文地址:https://www.cnblogs.com/Yellow0-0River/p/4281917.html
Copyright © 2011-2022 走看看