Возможно, я просто упускаю что-то очевидное, но у меня возникла проблема со скриптом Unity, который передает строку текста и изображение внешним приложениям (например, Twitter).
Я можно отправить текст, но изображение (которое должно быть скриншотом из игры) не появится в качестве вложения к сообщению.
Я пробовал изменить путь к файлу Строка должна быть путем к уже существующему PNG-файлу на моем телефоне на случай, если часть кода, посвященная снимку экрана, не работает, но у меня все еще возникает та же проблема. Я также пробовал изменить File:// на строчные буквы (из-за чего код вообще перестает работать) или изменить его на Content:// (что приводит к той же проблеме, когда нет вложение изображения).
Многие руководства, которые я нашел в Интернете, довольно старые, поэтому возможно, что-то в моем коде просто устарело.
Если у кого-нибудь есть предложения, что изменить, будет здорово. Спасибо!!
public IEnumerator AndroidShare()
{
isProcessing = true;
yield return new WaitForEndOfFrame();
string shareMessage = "Test shareMessage";
string screenshotName = (DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")) + ".png";
ScreenCapture.CaptureScreenshot(screenshotName, 2);
string filePath = Path.Combine("File://" + Application.persistentDataPath, screenshotName);
yield return new WaitForSecondsRealtime(1f);
if (!Application.isEditor)
{
AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent");
AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent");
intentObject.Call("setAction", intentClass.GetStatic("ACTION_SEND"));
AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
AndroidJavaObject uriObject = uriClass.CallStatic("parse", filePath);
intentObject.Call("putExtra", intentClass.GetStatic("EXTRA_STREAM"), uriObject);
intentObject.Call("putExtra", intentClass.GetStatic("EXTRA_TEXT"), shareMessage);
intentObject.Call("setType", "image/png");
AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unity.GetStatic("currentActivity");
AndroidJavaObject chooser = intentClass.CallStatic("createChooser", intentObject, "Share Picture");
currentActivity.Call("startActivity", chooser);
yield return new WaitForSecondsRealtime(1f);
}
yield return new WaitUntil(() => isFocus);
isProcessing = false;
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... e-in-unity
Проблема с общим доступом к файлу изображения в Unity ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1716993290
Anonymous
Возможно, я просто упускаю что-то очевидное, но у меня возникла проблема со скриптом Unity, который передает строку текста и изображение внешним приложениям (например, Twitter).
Я можно отправить текст, но изображение (которое должно быть скриншотом из игры) не появится в качестве вложения к сообщению.
Я пробовал изменить путь к файлу Строка должна быть путем к уже существующему PNG-файлу на моем телефоне на случай, если часть кода, посвященная снимку экрана, не работает, но у меня все еще возникает та же проблема. Я также пробовал изменить File:// на строчные буквы (из-за чего код вообще перестает работать) или изменить его на Content:// (что приводит к той же проблеме, когда нет вложение изображения).
Многие руководства, которые я нашел в Интернете, довольно старые, поэтому возможно, что-то в моем коде просто устарело.
Если у кого-нибудь есть предложения, что изменить, будет здорово. Спасибо!!
public IEnumerator AndroidShare()
{
isProcessing = true;
yield return new WaitForEndOfFrame();
string shareMessage = "Test shareMessage";
string screenshotName = (DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")) + ".png";
ScreenCapture.CaptureScreenshot(screenshotName, 2);
string filePath = Path.Combine("File://" + Application.persistentDataPath, screenshotName);
yield return new WaitForSecondsRealtime(1f);
if (!Application.isEditor)
{
AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent");
AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent");
intentObject.Call("setAction", intentClass.GetStatic("ACTION_SEND"));
AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
AndroidJavaObject uriObject = uriClass.CallStatic("parse", filePath);
intentObject.Call("putExtra", intentClass.GetStatic("EXTRA_STREAM"), uriObject);
intentObject.Call("putExtra", intentClass.GetStatic("EXTRA_TEXT"), shareMessage);
intentObject.Call("setType", "image/png");
AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unity.GetStatic("currentActivity");
AndroidJavaObject chooser = intentClass.CallStatic("createChooser", intentObject, "Share Picture");
currentActivity.Call("startActivity", chooser);
yield return new WaitForSecondsRealtime(1f);
}
yield return new WaitUntil(() => isFocus);
isProcessing = false;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78550263/issue-with-sharing-an-image-file-in-unity[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия