繁体   English   中英

在Android中通过蓝牙激活创建服务

[英]Creating Service with Bluetooth activation in Android

我想在Android中创建一项服务,该服务最初会询问用户是否要启动蓝牙并设置蓝牙发现。

我的问题是:

  1. 我可以在以下活动中启动该服务吗?

     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); 
  2. 我想在应用程序的生命周期内设置手机的可发现性。 可能吗?

  3. 我想访问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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM