[英]Creating Service with Bluetooth activation in Android
我想在Android中创建一项服务,该服务最初会询问用户是否要启动蓝牙并设置蓝牙发现。
我的问题是:
我可以在以下活动中启动该服务吗?
if (!mBluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, 0); } // Set Phone Discoverable for 300 seconds. Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 600); startActivity(discoverableIntent);
我想在应用程序的生命周期内设置手机的可发现性。 可能吗?
我想访问SD卡上的可用空间。 我该怎么办?
提前致谢。
1)您不能使用该特定代码,因为无法从服务调用startActivity()
。 您需要使用以下代码来启用蓝牙:
BluetoothAdapter mAdapter = BluetoothAdapter.getDefaultAdapter();
mAdapter.enable();
该文件说
boolean enable()
打开本地蓝牙适配器-未经明确的用户操作请勿使用以打开蓝牙。
因此,您需要确保先提示用户。 另外,您不能将设备设置为在服务中可发现,因为这样做的唯一方法是使用startActivity()
因此您需要在某种配置活动中执行该操作。
2)不,拥有可被发现的蓝牙设备会使它面临许多安全问题,因此不仅不可能,而且这是一个坏主意。
3)如果要写入SDCard,只需向清单文件添加WRITE_EXTERNAL_STORAGE
权限,然后即可使用标准Java File IO。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.