0

Bluetooth を開始して Bluetooth 検出を設定するかどうかを最初にユーザーに尋ねるサービスを 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 カードの空き容量にアクセスしたい。どうすればいいですか?

前もって感謝します。

4

1 に答える 1

1

1) サービスから呼び出すことができないため、その特定のコードを使用することはできませんstartActivity()。Bluetooth を有効にするには、次のコードを使用する必要があります。

BluetoothAdapter mAdapter = BluetoothAdapter.getDefaultAdapter();
mAdapter.enable();

ドキュメントによると

boolean enable()

ローカルの Bluetooth アダプターをオンにします。Bluetooth をオンにするための明示的なユーザー アクションなしでは使用しないでください。

そのため、最初にユーザーにプロンプ​​トを表示する必要があります。また、デバイスをサービスで検出可能に設定することはできません。これを行う唯一の方法は を使用することであるstartActivity()ため、何らかの構成アクティビティでその部分を実行する必要があります。

2) いいえ、Bluetooth デバイスを検出可能にすると、多くのセキュリティ上の問題が発生する可能性があるため、検出できないだけでなく、悪い考えです。

3) SDCard に書き込みたい場合はWRITE_EXTERNAL_STORAGE、マニフェスト ファイルにアクセス許可を追加するだけで、標準の Java ファイル IO を使用できます。

于 2010-04-06T14:42:26.093 に答える