Android 上的嵌入式人行横道运行时权限
Permissions for embedded Crosswalk runtime on Android
我正在尝试 embed the Crosswalk runtime 作为应用程序中其他 Java 代码的 WebView
替代品(即不是网络应用程序的简单包装器)。
现在他们的 official documentation 说您需要以下权限 无论如何:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
很多!
所以我尝试使用较少的权限。我发现以下权限 确实 需要无论如何:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
没关系。因此,如果这足够了,那将是对文档中给出的列表的重大改进。
但在某些情况下可能还需要其他的。有人可以澄清吗?在什么情况下需要其他权限?仅当通过 Java 脚本触发某些操作时?那么不用这些也可以用Crosswalk吧?
虽然您对官方文档的描述是正确的,但人行横道网站上确实存在一些相互矛盾的信息。
具体来说,这个link埋在Cordova迁移部分:
Migrate using command line tools
建议:
Crosswalk requires a couple of extra permissions which are not inserted by the Cordova application generator.
并特别引用:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
要点是,cordova 只添加
<uses-permission android:name="android.permission.INTERNET" />
因此必须得出唯一真正需要的权限是:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
正如您正确总结的那样。
我的猜测是,Crosswalk 团队在列表中添加了 webview 支持的所有 features/extensions 共同需要的所有权限的联合(包括访问 WebRTC 会话的摄像头)。
在这方面,该列表是合适的(与其他独立浏览器所支持的列表非常相似)并且可能是为了缩短解释而提供的。
顺便说一句,我做了一个测试并从清单中删除了 "CAMERA" 权限,并且 webview 优雅地处理了缺席(它没有使应用程序崩溃,相机只是停止工作并发出黑色图片),这似乎表明即使权限集有限,您也可以处理用户的 webview 以进行一般浏览(但不要相信我的话:我刚试过相机!)
希望对您有所帮助
我正在尝试 embed the Crosswalk runtime 作为应用程序中其他 Java 代码的 WebView
替代品(即不是网络应用程序的简单包装器)。
现在他们的 official documentation 说您需要以下权限 无论如何:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
很多!
所以我尝试使用较少的权限。我发现以下权限 确实 需要无论如何:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
没关系。因此,如果这足够了,那将是对文档中给出的列表的重大改进。
但在某些情况下可能还需要其他的。有人可以澄清吗?在什么情况下需要其他权限?仅当通过 Java 脚本触发某些操作时?那么不用这些也可以用Crosswalk吧?
虽然您对官方文档的描述是正确的,但人行横道网站上确实存在一些相互矛盾的信息。
具体来说,这个link埋在Cordova迁移部分:
Migrate using command line tools
建议:
Crosswalk requires a couple of extra permissions which are not inserted by the Cordova application generator.
并特别引用:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
要点是,cordova 只添加
<uses-permission android:name="android.permission.INTERNET" />
因此必须得出唯一真正需要的权限是:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
正如您正确总结的那样。
我的猜测是,Crosswalk 团队在列表中添加了 webview 支持的所有 features/extensions 共同需要的所有权限的联合(包括访问 WebRTC 会话的摄像头)。
在这方面,该列表是合适的(与其他独立浏览器所支持的列表非常相似)并且可能是为了缩短解释而提供的。
顺便说一句,我做了一个测试并从清单中删除了 "CAMERA" 权限,并且 webview 优雅地处理了缺席(它没有使应用程序崩溃,相机只是停止工作并发出黑色图片),这似乎表明即使权限集有限,您也可以处理用户的 webview 以进行一般浏览(但不要相信我的话:我刚试过相机!)
希望对您有所帮助