【问题标题】:Is there a way to do Bluetooth scans in a Android Instant App?有没有办法在 Android Instant App 中进行蓝牙扫描?
【发布时间】:2020-03-19 01:24:50
【问题描述】:

似乎每个访问 BluetoothAdapter 实例的方法或属性都会导致 Instant Apps 崩溃,即使将 android.permission.BLUETOOTHandroid.permission.BLUETOOTH_ADMIN 添加到 AndroidManifest.xml 也是如此。 我知道我在这里找不到蓝牙相关的权限和操作: https://developer.android.com/topic/google-play-instant/getting-started/instant-enabled-app-bundle 我也尝试过反射方式来触发BluetoothAdapter.enable,但得到了InvocationTargetException。 想知道是否还有其他解决方法? 谢谢

【问题讨论】:

    标签: bluetooth android-instant-apps


    【解决方案1】:

    不能将蓝牙用作免安装应用。

    Supported permissions and operations 中显示的允许权限的狭窄列表暗示了在免安装应用中被限制使用的更广泛的 API。

    • ACCESS_COARSE_LOCATION
    • ACCESS_FINE_LOCATION
    • ACCESS_NETWORK_STATE
    • BILLING - 自 Play Billing Library 1.0 起已弃用。
    • 相机
    • INSTANT_APP_FOREGROUND_SERVICE – 仅适用于 Android 8.0(API 级别 26) 及更高。
    • 互联网
    • READ_PHONE_NUMBERS – 仅适用于 Android 8.0(API 级别 26)及更高版本。
    • RECORD_AUDIO
    • 振动
    • WAKE_LOCK

    如果您尝试将受限 API 用作免安装应用,通常会导致异常(SecurityException 等)或某种拒绝。

    【讨论】:

    • 那么,如果完整的应用程序使用蓝牙怎么办 - 是否可以在清单中拥有蓝牙权限,以便完整的应用程序可以使用它,只要该权限(和相关的 API)不是在 Instant App 模式下运行时调用?
    • 啊,我发现您的其他答案基本上是说是的,您可以为已安装的应用程序与即时应用程序声明不同的权限,只是有一点细微差别。 stackoverflow.com/a/54097352/1119656 谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    相关资源
    最近更新 更多