2013-04-22 69 views
1

我無法在設備上禁用藍牙功能,這些設備在Android 4.0以上版本(2.3.6版本)上工作正常。這裏是我的簡單的代碼:Android BluetoothAdapter禁用功能在設備2.3.6上不起作用

public class MainActivity extends Activity implements View.OnClickListener { 
BluetoothAdapter mBluetoothAdapter; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
    findViewById(R.id.helloTxt).setOnClickListener(this); 
} 
@Override 
public void onClick(View v) {  
    if (mBluetoothAdapter.isEnabled()) {    
     mBluetoothAdapter.disable(); 
    } 
} 
} 

清單中也給予必要的權限:由aLogCat應用程序生成的設備上

uses-permission android:name="android.permission.BLUETOOTH" 
uses-permission android:name="android.permission.BLUETOOTH_ADMIN" 

和logcat的結果。

E/AndroidRuntime(28167): FATAL EXCEPTION: main 
E/AndroidRuntime(28167): java.lang.SecurityException: Calling uid 10097 gave packageandroid which is owned by uid 1000 
E/AndroidRuntime(28167): at android.os.Parcel.readException(Parcel.java:1322) 
E/AndroidRuntime(28167): at android.os.Parcel.readException(Parcel.java:1276) 
E/AndroidRuntime(28167): at android.bluetooth.IBluetooth$Stub$Proxy.disable(IBluetooth.java:632) 
E/AndroidRuntime(28167): at android.bluetooth.BluetoothAdapter.disable(BluetoothAdapter.java:563) 
E/AndroidRuntime(28167): at com.example.bluetoothtest.MainActivity.onClick(MainActivity.java:25) 
E/AndroidRuntime(28167): at android.view.View.performClick(View.java:2485) 
E/AndroidRuntime(28167): at android.view.View$PerformClick.run(View.java:9080) 
E/AndroidRuntime(28167): at android.os.Handler.handleCallback(Handler.java:587) 
E/AndroidRuntime(28167): at android.os.Handler.dispatchMessage(Handler.java:92) 
E/AndroidRuntime(28167): at android.os.Looper.loop(Looper.java:130) 
E/AndroidRuntime(28167): at android.app.ActivityThread.main(ActivityThread.java:3687) 
E/AndroidRuntime(28167): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(28167): at java.lang.reflect.Method.invoke(Method.java:507) 
E/AndroidRuntime(28167): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
E/AndroidRuntime(28167): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
E/AndroidRuntime(28167): at dalvik.system.NativeStart.main(Native Method) 

其在android 2.3.6版本設備中的崩潰應用程序。請幫忙 !!

在此先感謝。

+0

什麼是崩潰,報告logcat – Siddharth 2013-04-22 13:27:32

+0

@Siddharth感謝您的迴應,我已添加logcat的詳細信息。請幫忙。 – 2013-04-22 14:26:16

+0

我收到了一份報告,就像涉及到BluetoothAdapter.disable()一樣。所有用戶都運行Android 4.x,因此它不是由於舊版本。我懷疑它可能是運行PrivacyGuard(?)的用戶,並拒絕對應用程序的某些權限,在這種情況下是藍牙。希望看到明確的迴應。 – pmont 2013-08-20 03:28:54

回答

0

要獲取表示本地藍牙適配器的BluetoothAdapter,在JELLY_BEAN_MR1及其下運行時,調用靜態getDefaultAdapter()方法;當在JELLY_BEAN_MR2及更高版本上運行時,通過帶有BLUETOOTH_SERVICE的getSystemService(String)來檢索它。

相關問題