【发布时间】:2014-03-21 15:14:51
【问题描述】:
我正在尝试确定在 Android 上以编程方式启用蓝牙的首选方式。我发现以下任何一种技术都有效(至少在 Android 4.0.4 上...):
public class MyActivity extends Activity {
public static final int MY_BLUETOOTH_ENABLE_REQUEST_ID = 6;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, MY_BLUETOOTH_ENABLE_REQUEST_ID);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == MY_BLUETOOTH_ENABLE_REQUEST_ID) {
if (resultCode == RESULT_OK) {
// Request granted - bluetooth is turning on...
}
if (resultCode == RESULT_CANCELED) {
// Request denied by user, or an error was encountered while
// attempting to enable bluetooth
}
}
}
或者...
BluetoothAdapter.getDefaultAdapter().enable();
前者在启用之前要求用户许可,而后者只是静默启用蓝牙(但需要“android.permission.BLUETOOTH_ADMIN”权限)。一种或另一种旧/过时和/或一种技术仅在某些设备上可用?还是只是个人喜好问题?
【问题讨论】:
-
我记得在某处读到过,你不应该在不告诉用户的情况下打开东西。谷歌也不喜欢它。
-
没错,但这两种技术都是由 Google 提供的,因此,应该是 Google 批准的......并且两者都告诉用户,这只是他们何时告诉用户的问题(在安装与. 稍后当它实际打开蓝牙时)。我知道从客户友好性的角度来看,一种可能更可取,但我也想知道这两种技术是否随处可用,或者一种或另一种是否仅限于某些版本,或者一种曾经是正常的方式,但现在现在皱起眉头,等等。
-
嘿特洛伊!你找到答案了吗?我打算在我的应用程序中使用它,但我看到了那个警告。所以我该怎么做?我已经在清单文件中添加了这些权限,我还需要做什么吗?或者例如。如果我将我的应用程序上传到 Play 商店,那会拒绝吗?谢谢!