簡體   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