Update installapk.cs
This commit is contained in:
@@ -1,60 +1 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.SceneManagement;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
private bool installApp(string apkPath)
|
||||
{
|
||||
bool success = true;
|
||||
//GameObject.Find("TextDebug").GetComponent<Text>().text = "Installing App";
|
||||
|
||||
try
|
||||
{
|
||||
//Get Activity then Context
|
||||
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
|
||||
AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
|
||||
AndroidJavaObject unityContext = currentActivity.Call<AndroidJavaObject>("getApplicationContext");
|
||||
|
||||
//Get the package Name
|
||||
string packageName = unityContext.Call<string>("getPackageName");
|
||||
string authority = packageName + ".fileprovider";
|
||||
|
||||
AndroidJavaClass intentObj = new AndroidJavaClass("android.content.Intent");
|
||||
string ACTION_VIEW = intentObj.GetStatic<string>("ACTION_VIEW");
|
||||
AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent", ACTION_VIEW);
|
||||
|
||||
|
||||
int FLAG_ACTIVITY_NEW_TASK = intentObj.GetStatic<int>("FLAG_ACTIVITY_NEW_TASK");
|
||||
int FLAG_GRANT_READ_URI_PERMISSION = intentObj.GetStatic<int>("FLAG_GRANT_READ_URI_PERMISSION");
|
||||
|
||||
//File fileObj = new File(String pathname);
|
||||
AndroidJavaObject fileObj = new AndroidJavaObject("java.io.File", apkPath);
|
||||
//FileProvider object that will be used to call it static function
|
||||
AndroidJavaClass fileProvider = new AndroidJavaClass("android.support.v4.content.FileProvider");
|
||||
//getUriForFile(Context context, String authority, File file)
|
||||
AndroidJavaObject uri = fileProvider.CallStatic<AndroidJavaObject>("getUriForFile", unityContext, authority, fileObj);
|
||||
|
||||
intent.Call<AndroidJavaObject>("setDataAndType", uri, "application/vnd.android.package-archive");
|
||||
intent.Call<AndroidJavaObject>("addFlags", FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.Call<AndroidJavaObject>("addFlags", FLAG_GRANT_READ_URI_PERMISSION);
|
||||
currentActivity.Call("startActivity", intent);
|
||||
|
||||
//GameObject.Find("TextDebug").GetComponent<Text>().text = "Success";
|
||||
}
|
||||
catch (System.Exception e)
|
||||
{
|
||||
//GameObject.Find("TextDebug").GetComponent<Text>().text = "Error: " + e.Message;
|
||||
success = false;
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user