0

現在実行中のAndroidデバイスの名前を変更しようとしています。デバイスの名前には、他の電話との通信に関連する情報が含まれているためです。電話が他の電話をスキャンして情報を計算するときに、電話の名前は常に変更されます。Javaコード内で電話の名前を変更する方法についてのアイデアはありますか?数行以上のコードであるとは想像できませんが、何も見つかりません。前もって感謝します。

4

1 に答える 1

1

非常に簡単です。ローカルデバイスを参照するBluetoothアダプタのインスタンスを取得して(設定できるのはBluetoothの名前だけなので)、それを呼び出しますsetName("newName");

BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
                 myDevice.setName("new name");

ドキュメントの引用:

有効なBluetooth名はUTF-8エンコーディングを使用して最大248バイトですが、多くのリモートデバイスは最初の40文字しか表示できず、一部は20文字に制限される場合があります。

したがって、デバイス名として設定するものに注意してください。ああ、別の注意点として、デバイスのBluetoothがオフの場合、名前を変更することはできません。したがって、チェック後の実際のコードは、次の行のようになります。

BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
if(myDevice.getState() == BluetoothAdapter.STATE_ON){
    myDevice.setName("new name");
}

注意事項: エミュレーターでこれをテストする場合は、エミュレーターにBluetooth機能がないため、getDefaultAdapter()メソッドがnullを返し、結果としてNullPointerException:)になることに注意してください。

于 2012-05-10T17:45:56.443 に答える