[英]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.