解决  如何在Unity Android中检测USB存储?

杜维扬舒

〜媒人〜
已加入
2020年2月20日
留言内容
26
编程经验
1-3
我正在尝试通过unity 2018.4.9中的unity android游戏从usb存储中读取文本文件。
我正在使用Java类GetExternalFilesDir,但它无法读取90%的android设备中的Usb存储。它仅读取内部存储器和sd卡(如果已插入)。

我已经为数周而苦苦挣扎,如果您能提供解决方法,我将不胜感激。

提前致谢。
 

羊皮

知名会员
已加入
2018年9月5日
留言内容
1,982
编程经验
10+
请再解释一次?  🤔

您已经在Unity 3D中创建了一个可能在手机上运行的roid游戏,并且您希望该游戏读取USB端口上的文件吗?

听起来像是一个非常奇怪的请求。如果一个游戏只有一个游戏,为什么游戏需要访问另一个设备上的文件?如果我错了,那么请准确,清楚地说明这是如何工作的,为什么需要它?

我只是指出,Android不仅会抛弃这些类型的权限,而且任何访问此类设备的尝试都将受到权限限制。正确的方法是从您的用户那里获得许可"game"首先,否则您将冒险"game"因违反安全政策而被从Play商店中拉出。尝试采用[删除的支持链接]的路线,然后尝试首先实施标准步骤。

我仍在努力理解为什么所有事物的游戏都需要读取或写入外部USB设备。

编辑:删除的链接。等待您的问题的国防部检查。
 
Last edited:

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
我必须同意,从USB设备读取移动游戏的想法很不寻常,实际上,我从未听说过这样做。我想说,两种最可能的可能性是,您一开始就被误导了,应该考虑从其他来源加载数据,或者您实际上是在做一些狡猾的事情。如果您不能对此提供合理的解释,那么我认为我们将不得不关闭此线程。
 

羊皮

知名会员
已加入
2018年9月5日
留言内容
1,982
编程经验
10+
应该考虑从其他来源加载数据,或者您实际上是在做一些狡猾的事情。
约翰,我知道是主持人,您需要非常理性,理性,冷静和集体。在某种意义上说,您需要采取集体行动,因为您需要在采取快速行动(例如关闭主题)之前获得必要的信息,并让OP能够具体说明他们的工作。

但是,看来,无论"game"不足以让我们的OP将上述数据存储在手机的内置本地存储或该手机的外部SD卡中。
它仅读取内部存储器和sd卡(如果已插入)。

如果闹铃还没有响起。他们真的应该是。我已经考虑了一段时间,只能断定您的假设中的较后一个是正确的,并且我们的OP正在做一些不可靠的事情。我们的OP似乎要求的是一种绕过Android设置的权限的方法,以规避任何应用程序访问其连接设备的外部存储,并且Android实施了更严格的权限策略,允许任何应用程序访问USB端口用于文件传输或文件/目录查找访问。

我只能得出结论"game"由勒索软件组成,用于从与其连接的任何设备中收集特定的个人数据。如果这是一个正当的问题,而我们的OP正在创建一个正当的问题"game",他们应该遵守Android / Google Play政策,要求用户首先向游戏授予此类权限以允许进行此类访问,但这不是这里的问题。即使是这样,为什么会"game"是否需要访问USB端口?

我忍不住相信Facebook上的游戏广告的大量涌现和兴起,这些广告正在感染用户的手机并损害了安全性,这一点在新闻中已多次报道,这只是其中一种情况。无论我们的OP给出什么答复。没有理由不使用内部存储,或者至少要使用SD存储,否则就需要大量空间"game"在做,在任何情况下都不应"game"允许访问用户的USB端口,该端口通常仅用于PC和手机之间的双向文件传输。

最终,选择结束该主题的选择是您自己做出的,但是我看不出这种性质的问题如何产生任何良好的意图或合乎逻辑的答案。

最后,如果您从连接的USB调用文件传输=>电话,您有自由的来往于以下文件的传输:这些存储卷以及与其连接的PC上的存储卷:

截图_78.jpg


您是否仍然认为应该保留并打开线程?
 

杜维扬舒

〜媒人〜
已加入
2020年2月20日
留言内容
26
编程经验
1-3
它不是游戏。我统一编码的软件和软件将由apk分发。 Apk将读取USB中的文本文件以在android设备上运行。
我也要求外部权限,当它在android上运行时,软件也会要求它。
 

杜维扬舒

〜媒人〜
已加入
2020年2月20日
留言内容
26
编程经验
1-3
约翰,我知道是主持人,您需要非常理性,理性,冷静和集体。在某种意义上说,您需要采取集体行动,因为您需要在采取快速行动(例如关闭主题)之前获得必要的信息,并让OP能够具体说明他们的工作。

但是,看来,无论"game"不足以让我们的OP将上述数据存储在手机的内置本地存储或该手机的外部SD卡中。


如果闹铃还没有响起。他们真的应该是。我已经考虑了一段时间,只能断定您的假设中的较后一个是正确的,并且我们的OP正在做一些不可靠的事情。我们的OP似乎要求的是一种绕过Android设置的权限的方法,以规避任何应用程序访问其连接设备的外部存储,并且Android实施了更严格的权限策略,允许任何应用程序访问USB端口用于文件传输或文件/目录查找访问。

我只能得出结论"game"由勒索软件组成,用于从与其连接的任何设备中收集特定的个人数据。如果这是一个正当的问题,而我们的OP正在创建一个正当的问题"game",他们应该遵守Android / Google Play政策,要求用户首先向游戏授予此类权限以允许进行此类访问,但这不是这里的问题。即使是这样,为什么会"game"是否需要访问USB端口?

我忍不住相信Facebook上的游戏广告的大量涌现和兴起,这些广告正在感染用户的手机并损害了安全性,这一点在新闻中已多次报道,这只是其中一种情况。无论我们的OP给出什么答复。没有理由不使用内部存储,或者至少要使用SD存储,否则就需要大量空间"game"在做,在任何情况下都不应"game"允许访问用户的USB端口,该端口通常仅用于PC和手机之间的双向文件传输。

最终,选择结束该主题的选择是您自己做出的,但是我看不出这种性质的问题如何产生任何良好的意图或合乎逻辑的答案。

最后,如果您从连接的USB调用文件传输=>电话,您有自由的来往于以下文件的传输:这些存储卷以及与其连接的PC上的存储卷:

查看附件835

您是否仍然认为应该保留并打开线程?
主席先生,这不是游戏,我肯定不会在游戏商店中使用它。该应用程序将读取USB中的文本文件以正常工作。就这些。它被统一编码。
 

羊皮

知名会员
已加入
2018年9月5日
留言内容
1,982
编程经验
10+
我试图通过我的统一Android游戏从USB存储中读取文本文件
它不是游戏。它是我统一编码的软件
你在矛盾自己,或者你在说谎。您不会统一创建软件,这就是Visual Studio 2019的目的;创建软件。您将统一性用于游戏开发。

请不要胡说我。说谎是光顾。

我从事软件程序员已有20年左右的时间,我制作android应用程序,桌面游戏,并用超过20种不同的语言来编写软件,以供职业发展。我也一直是社区论坛的参与成员,就像这样一个足够长的时间,可以发现有人在冒着烟熏我的屁股。
 

杜维扬舒

〜媒人〜
已加入
2020年2月20日
留言内容
26
编程经验
1-3
你在矛盾自己,或者你在说谎。您不会统一创建软件,这就是Visual Studio 2019的目的;创建软件。您将统一性用于游戏开发。

请不要胡说我。说谎是在光顾。

我从事软件程序员已有20年左右的时间,我制作android应用程序,桌面游戏,并用超过20种不同的语言来编写软件,以供职业发展。我也一直是社区论坛的参与成员,就像这样一个足够长的时间,可以发现有人在冒着烟熏我的屁股。

尊敬的先生,我不是在撒谎,我也不知道是什么让你觉得我在撒谎?
我知道统一性是游戏开发的基础,但只要稍加精明,我们就可以在上面创建应用程序。没有人正在查看我的软件的代码。

对于此解决方案,我也可以共享视频,图像和gif。在完成其他模块时,我在网络上发布了多个线程来查找此问题的答案(我也可以共享指向该主题的链接)。

Visual Studio unity 2017支持所有c#库,系统文件,LINQ,所以我用它来构建这一软件,我也制作了测试游戏,但冒着风险看看是否可以做任何事情我在其中做了一个完整的软件。该软件还使用至少20页的itext7生成PDF。你们所有人现在都会说,为什么在游戏中使用pdf创建?我再说一遍,这不是游戏,是的,它团结一致,是另一个应用程序。
 

杜维扬舒

〜媒人〜
已加入
2020年2月20日
留言内容
26
编程经验
1-3
请再解释一次?  🤔

您已经在Unity 3D中创建了一个可能在手机上运行的roid游戏,并且您希望该游戏读取USB端口上的文件吗?

听起来像是一个非常奇怪的请求。如果一个游戏只有一个游戏,为什么游戏需要访问另一个设备上的文件?如果我错了,那么请准确,清楚地说明这是如何工作的,为什么需要它?

我只是指出,Android不仅会抛弃这些类型的权限,而且任何访问此类设备的尝试都将受到权限限制。正确的方法是从您的用户那里获得许可"game"首先,否则您将冒险"game"因违反安全政策而被从Play商店中拉出。尝试采用[删除的支持链接]的路线,然后尝试首先实施标准步骤。

我仍在努力理解为什么所有事物的游戏都需要读取或写入外部USB设备。

编辑:删除的链接。等待您的问题的国防部检查。

软件会询问外部存储的权限,但是我不确定是否有读取USB存储的特殊权限。
 

杜维扬舒

〜媒人〜
已加入
2020年2月20日
留言内容
26
编程经验
1-3
我必须同意,从USB设备读取移动游戏的想法很不寻常,实际上,我从未听说过这样做。我想说,两种最可能的可能性是,您一开始就被误导了,应该考虑从其他来源加载数据,或者您实际上是在做一些狡猾的事情。如果您不能对此提供合理的解释,那么我认为我们将不得不关闭此线程。
您说的没错,这很棘手,但我认为不会误导。为什么构建某些东西做过从未有过的事是不寻常的?
 

杜维扬舒

〜媒人〜
已加入
2020年2月20日
留言内容
26
编程经验
1-3
约翰,我知道是主持人,您需要非常理性,理性,冷静和集体。在某种意义上说,您需要采取集体行动,因为您需要在采取快速行动(例如关闭主题)之前获得必要的信息,并让OP能够具体说明他们的工作。

但是,看来,无论"game"不足以让我们的OP将上述数据存储在手机的内置本地存储或该手机的外部SD卡中。


如果闹铃还没有响起。他们真的应该是。我已经考虑了一段时间,只能断定您的假设中的较后一个是正确的,并且我们的OP正在做一些不可靠的事情。我们的OP似乎要求的是一种绕过Android设置的权限的方法,以规避任何应用程序访问其连接设备的外部存储,并且Android实施了更严格的权限策略,允许任何应用程序访问USB端口用于文件传输或文件/目录查找访问。

我只能得出结论"game"由勒索软件组成,用于从与其连接的任何设备中收集特定的个人数据。如果这是一个正当的问题,而我们的OP正在创建一个正当的问题"game",他们应该遵守Android / Google Play政策,要求用户首先向游戏授予此类权限以允许进行此类访问,但这不是这里的问题。即使是这样,为什么会"game"是否需要访问USB端口?

我忍不住相信Facebook上的游戏广告的大量涌现和兴起,这些广告正在感染用户的手机并损害了安全性,这一点在新闻中已多次报道,这只是其中一种情况。无论我们的OP给出什么答复。没有理由不使用内部存储,或者至少要使用SD存储,否则就需要大量空间"game"在做,在任何情况下都不应"game"允许访问用户的USB端口,该端口通常仅用于PC和手机之间的双向文件传输。

最终,选择结束该主题的选择是您自己做出的,但是我看不出这种性质的问题如何产生任何良好的意图或合乎逻辑的答案。

最后,如果您从连接的USB调用文件传输=>电话,您有自由的来往于以下文件的传输:这些存储卷以及与其连接的PC上的存储卷:

查看附件835

您是否仍然认为应该保留并打开线程?
哦,天哪,亲爱的先生,请注意,此应用程序是统一编写的,没有病毒或垃圾邮件。

该软件已经完成,它也可以在清单中请求外部存储权限。我不知道dong开箱即用可疑。该软件甚至不会在广告上运行。我也准备从unity编辑器中共享该软件的屏幕截图和gif效果。我请您回顾过去的刻板印象。我对该软件进行了统一编码,是的,它是一个实用应用程序,而不是游戏。不,它不会上传到Play商店。
 

杜维扬舒

〜媒人〜
已加入
2020年2月20日
留言内容
26
编程经验
1-3
约翰,我知道是主持人,您需要非常理性,理性,冷静和集体。在某种意义上说,您需要采取集体行动,因为您需要在采取快速行动(例如关闭主题)之前获得必要的信息,并让OP能够具体说明他们的工作。

但是,看来,无论"game"不足以让我们的OP将上述数据存储在手机的内置本地存储或该手机的外部SD卡中。


如果闹铃还没有响起。他们真的应该是。我已经考虑了一段时间,只能断定您的假设中的较后一个是正确的,并且我们的OP正在做一些不可靠的事情。我们的OP似乎要求的是一种绕过Android设置的权限的方法,以规避任何应用程序访问其连接设备的外部存储,并且Android实施了更严格的权限策略,允许任何应用程序访问USB端口用于文件传输或文件/目录查找访问。

我只能得出结论"game"由勒索软件组成,用于从与其连接的任何设备中收集特定的个人数据。如果这是一个正当的问题,而我们的OP正在创建一个正当的问题"game",他们应该遵守Android / Google Play政策,要求用户首先向游戏授予此类权限以允许进行此类访问,但这不是这里的问题。即使是这样,为什么会"game"是否需要访问USB端口?

我忍不住相信Facebook上的游戏广告的大量涌现和兴起,这些广告正在感染用户的手机并损害了安全性,这一点在新闻中已多次报道,这只是其中一种情况。无论我们的OP给出什么答复。没有理由不使用内部存储,或者至少要使用SD存储,否则就需要大量空间"game"在做,在任何情况下都不应"game"允许访问用户的USB端口,该端口通常仅用于PC和手机之间的双向文件传输。

最终,选择结束该主题的选择是您自己做出的,但是我看不出这种性质的问题如何产生任何良好的意图或合乎逻辑的答案。

最后,如果您从连接的USB调用文件传输=>电话,您有自由的来往于以下文件的传输:这些存储卷以及与其连接的PC上的存储卷:

查看附件835

您是否仍然认为它应该保持开放状态?
主席先生,我尊重您的权威,如果所有人都断定这不符合道德规范,请继续关闭它,阻止我退出此论坛,但我确实是统一编写了一个简单的实用程序软件(我知道这是为了游戏)。它使用Visual Studio,所以我想做一个简单的计算软件,它也可以基于计算生成pdf报告。现在,您应该考虑为什么游戏会生成pdf报告,但又不是游戏。我做了一个团结实验,看我是否也可以做一个实用的工具。它奏效了,我完成了软件,但是这是我一直在努力的一件事。我让它可以使用DriveInfo类在独立版本上工作,但是可以肯定,我们都知道它不适用于android,这使我回到了我的问题"如何在Android上读取USB?"
我完全没有Java经验。
 

杜维扬舒

〜媒人〜
已加入
2020年2月20日
留言内容
26
编程经验
1-3
有没有人下定决心要帮助我解决这个问题?如果是,我将分享我的代码,或者如果没有人可以帮助我,请关闭问题,以便我最终放弃。希望可能很危险。
 

羊皮

知名会员
已加入
2018年9月5日
留言内容
1,982
编程经验
10+
我不相信您一开始就会表现出应有的成就,我已经表达了以上理由...

我也不相信您的所作所为是出于善意,我有资格得到自己的直觉和见解。

我也不相信你"game"是一个应用程序。以及如何区分两者之间的混淆,这是我永远不会知道的。

我也从未见过有人使用Unity来创建"app"而Visual Studio在执行此类任务时效率更高。

抱歉,但我认为没有必要在此主题上做任何进一步的贡献。如果其他人认为您有真正的意图,那么也许他们会为您提供帮助。

我的理由很简单: 2019年,Google Play Protect阻止了将近20亿个恶意软件安装| WeLiveSecurity
恶意软件生意兴隆,很多恶意软件都被转储到应用程序中。就像我说的那样,我不相信您的意图,因此不会为Google一直在努力解决的问题做出贡献,因此我们将在这里停放这个。

没有理由不应该使用内部存储,也没有理由需要连接到USB!
 
Last edited:

杜维扬舒

〜媒人〜
已加入
2020年2月20日
留言内容
26
编程经验
1-3
我不相信您一开始就会表现出应有的成就,我已经表达了以上理由...

我也不相信您的所作所为是出于善意,我有资格得到自己的直觉和见解。

我也不相信你"game"是一个应用程序。以及如何区分两者之间的混淆,这是我永远不会知道的。

我也从未见过有人使用Unity来创建"app"而Visual Studio在执行此类任务时效率更高。

抱歉,但我认为没有必要在此主题上做任何进一步的贡献。如果其他人认为您有真正的意图,那么也许他们会为您提供帮助。

我的理由很简单: 2019年,Google Play Protect阻止了将近20亿个恶意软件安装| WeLiveSecurity
恶意软件生意兴隆,很多恶意软件都被转储到应用程序中。就像我说的那样,我不相信您的意图,因此不会为Google一直在努力解决的问题做出贡献,因此我们将在这里停放这个。

没有理由不应该使用内部存储,也没有理由需要连接到USB!

我为什么不能这样做?为了在应用程序的android和Windows构建之间创建数据持久性,我将一些数据保存到usb存储中的文本文件中,以便可以将其从Windows传递到android,反之亦然。我如何使您相信没有什么不道德的呢?
 
Last edited:

杜维扬舒

〜媒人〜
已加入
2020年2月20日
留言内容
26
编程经验
1-3
I
我为什么不能这样做?为了在Android和Windows版本的应用程序之间创建数据持久性,我将一些数据保存到USB存储中的文本文件中,以便可以将其从Windows传递到android,反之亦然。我如何让您相信没有什么不道德的?
我正在使用VS2017,但由于其IDE而使用unity。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,605
地点
弗吉尼亚州切萨皮克
编程经验
10+
对我来说,少一点"hacky"一种方法是要求用户安装/运行桌面应用程序。桌面应用程序和您的Android应用程序都可以使用网络(对等TCP或UDP)或通过在线托管在某处的网络服务相互通信。这使PC用户完全意识到他们正在积极地进行允许访问PC的操作。

我相信AirDroid已经走了这条路。 AirDroid以前是基于PC的网络,但现在它们是基于应用程序的。正如我回想起的那样,他们支持通过USB(然后使用相同的ADB通道/协议)进行网络共享。我认为不再提供网络共享功能。
 
Last edited:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,605
地点
弗吉尼亚州切萨皮克
编程经验
10+
无论如何,从 文件资料 for getExternalFilesDir():
此处返回的共享存储设备被视为设备的稳定部分,包括保护盖下的物理介质插槽。返回的路径不包括瞬态设备,例如连接到手持设备的USB闪存驱动器。
 

杜维扬舒

〜媒人〜
已加入
2020年2月20日
留言内容
26
编程经验
1-3
To me, a less "hacky"一种方法是要求用户安装/运行桌面应用程序。桌面应用程序和您的Android应用程序都可以使用网络(对等TCP或UDP)或通过在线托管在某处的网络服务相互通信。这使PC用户完全意识到他们正在积极地进行允许访问PC的操作。

我相信AirDroid已经走了这条路。 AirDroid以前是基于PC的网络,但现在它们是基于应用程序的。正如我回想起的那样,他们支持通过USB(然后使用相同的ADB通道/协议)进行网络共享。
我很感激。终于有人在说些话。先生,我想使整个过程在线,以便我们也可以允许在线更新(显然是在用户要求时),但是客户要求在前20个Build发行版本中保持USB锁定。 android和PC之间的App数据持久性显然有据可查。这就是使该软件以其自己的方式独树一帜的原因。它保存名称和出生日期配置文件,以便在连接USB密钥的不同计算机中读取。

我想我忘了提及我在目前的预算中买不起U2F钥匙,所以我要在普通存储中制作一个。
它的工作方式是:软件检测到USB存储位置中的特定文本文件,如果其中的文本与软件中的字符串匹配,则该软件将被注册并被允许进一步使用。我认为这应该消除所有人的疑虑。
 
Last edited:
最佳 底部