অ্যান্ড্রয়েডে ব্লুটুথ প্রোগ্রামিয়ালি কীভাবে সক্ষম / অক্ষম করবেন to


104

আমি প্রোগ্রামের মাধ্যমে ব্লুটুথ সক্ষম / অক্ষম করতে চাই। আমার কাছে নিম্নলিখিত কোড রয়েছে।

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();    
if (!mBluetoothAdapter.isEnabled()) {
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

তবে এই কোডটি এসডিকে 1.5 তে কাজ করছে না। আমি কীভাবে এটি কাজ করতে পারি?


এটা কিভাবে কাজ করছে না? আপনি যদি কোনো ত্রুটি পাচ্ছেন? তা হলে ত্রুটি কী?
অ্যাডাম ড্রস্কল

উত্তর:


30

অ্যান্ড্রয়েড BluetoothAdapter ডক্স বলে উপলব্ধ করা হয়েছে যেহেতু এপিআই শ্রেনী 5. এপিআই লেভেল 5 অ্যান্ড্রয়েড 2.0 হয়।

আপনি ব্লুটুথ এপিআই এর ব্যাকপোর্ট ব্যবহার করে চেষ্টা করতে পারেন (ব্যক্তিগতভাবে এটি চেষ্টা করেননি): http://code.google.com/p/backport-android-bluetuth/


164

এই কোডটি আমার পক্ষে কাজ করেছে ..

//Disable bluetooth
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();    
if (mBluetoothAdapter.isEnabled()) {
    mBluetoothAdapter.disable(); 
} 

এটি কাজ করার জন্য আপনার অবশ্যই নিম্নলিখিত অনুমতি থাকতে হবে:

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

এটা সত্যিই আমার জন্য কাজ করে। অ্যান্ড্রয়েড ডিভাইসে ব্লুটুথ সংযোগ বিচ্ছিন্ন করার সহজ পদ্ধতি। অনেক বন্ধুকে ধন্যবাদ
অমিত থাপার

7
আপনি যদি BLUETOOTH_ADMIN অনুমতি যোগ করেন তবে এটি কাজ করছে তবে আপনার যদি স্টার্টঅ্যাক্টিভিটি ফর রিসাল্ট (সক্ষমবেটিআইটি, 0) ব্যবহার করার দরকার নেই; আপনার ব্লুটুথ সক্ষম করতে
মজিদ গোলশাদি

1
আপনার দরকারী উত্তর +1 জন্য ধন্যবাদ। কে এটি সক্ষম করতে জানে না তার জন্য কেবল আমি যুক্ত করতে চাই: এমব্লুথুথএডাপ্টার.এনবেবল ()
ক্রিস সিম

97

এটি করার কিছুটা শক্তিশালী উপায় এখানে রয়েছে, enable()\disable()পদ্ধতিগুলির রিটার্ন মানগুলিও পরিচালনা করে :

public static boolean setBluetooth(boolean enable) {
    BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    boolean isEnabled = bluetoothAdapter.isEnabled();
    if (enable && !isEnabled) {
        return bluetoothAdapter.enable(); 
    }
    else if(!enable && isEnabled) {
        return bluetoothAdapter.disable();
    }
    // No need to change bluetooth state
    return true;
}

এবং আপনার মেনিফেস্ট ফাইলটিতে নিম্নলিখিত অনুমতিগুলি যুক্ত করুন:

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

তবে এই গুরুত্বপূর্ণ বিষয়গুলি মনে রাখবেন:

এটি একটি অ্যাসিঙ্ক্রোনাস কল: এটি অবিলম্বে ফিরে আসবে, এবং ক্লায়েন্টদের পরবর্তী পদক্ষেপের অ্যাডাপ্টারের স্থিতির পরিবর্তনগুলি সম্পর্কে অবহিত হওয়ার জন্য ACTION_STATE_CHANGED শোনানো উচিত। যদি এই কলটি সত্য ফিরে আসে, তবে অ্যাডাপ্টারের স্থিতিটি অবিলম্বে STATE_OFF থেকে STATE_TURNING_ON এ স্থানান্তরিত হবে এবং কিছু সময় পরে STATE_OFF বা STATE_ON- এ রূপান্তরিত হবে। যদি এই কলটি মিথ্যা প্রত্যাবর্তন করে তবে একটি তাত্ক্ষণিক সমস্যা ছিল যা অ্যাডাপ্টারটি চালু হওয়া থেকে আটকাতে পারে - যেমন বিমান মোড, বা অ্যাডাপ্টার ইতিমধ্যে চালু আছে is

হালনাগাদ:

ঠিক আছে, সুতরাং ব্লুটুথ শ্রোতা কীভাবে প্রয়োগ করবেন ?:

private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();

        if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
            final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
                                                 BluetoothAdapter.ERROR);
            switch (state) {
            case BluetoothAdapter.STATE_OFF:
                // Bluetooth has been turned off;
                break;
            case BluetoothAdapter.STATE_TURNING_OFF:
                // Bluetooth is turning off;
                break;
            case BluetoothAdapter.STATE_ON:
                // Bluetooth is on
                break;
            case BluetoothAdapter.STATE_TURNING_ON:
                // Bluetooth is turning on
                break;
            }
        }
    }
};

এবং কিভাবে রিসিভার নিবন্ধন / নিবন্ধন করবেন? (আপনার Activityক্লাসে)

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // ...

    // Register for broadcasts on BluetoothAdapter state change
    IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
    registerReceiver(mReceiver, filter);
}

@Override
public void onStop() {
    super.onStop();

     // ...

    // Unregister broadcast listeners
    unregisterReceiver(mReceiver);
}

1
আপনি যদি BLUETOOTH_ADMINঅনুমতি যোগ করেন তবে এটি কাজ করে তবে startActivityForResult(enableBtIntent, 0);আপনার ব্লুটুথ সক্ষম করার জন্য আপনার প্রয়োজন
পড়ার দরকার নেই

1
হাইলাইট করা তথ্যটি ব্লুটুথএডাপ্টার ডক্স থেকে উদ্ধৃত করা হয়েছে, বিশেষত সক্ষম () পদ্ধতির জন্য।
কেভিন লি

আরে, ডকস বলে যে এর Bluetooth should never be enabled without direct user consent. If you want to turn on Bluetooth in order to create a wireless connection, you should use the ACTION_REQUEST_ENABLE Intent, which will raise a dialog that requests user permission to turn on Bluetooth. The enable() method is provided only for applications that include a user interface for changing system settings, such as a "power manager" app.অর্থ কী? প্রাক্তন জন্য। আমি আপনার কোড থেকে কিছুটা অ্যাপ তৈরি করেছি এবং এটি কার্যকর হয়েছে। তবে আমি যদি প্লে স্টোরে আপলোড করতে চাই তবে এটি কাজ করবে না?
হিলাল

@ হিলাল এটি কাজ করবে তবে ইনস্টলেশনের আগে ব্যবহারকারীদের সম্মতি দেওয়া দরকার। তারা এর মতো একটি সংলাপ দেখতে পাবে: pewinternet.org/2015/11/10/…
ক্যানার

23

ব্লুটুথ সক্ষম করতে আপনি নীচের যে কোনও ফাংশন ব্যবহার করতে পারেন:

 public void enableBT(View view){
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    if (!mBluetoothAdapter.isEnabled()){
        Intent intentBtEnabled = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
        // The REQUEST_ENABLE_BT constant passed to startActivityForResult() is a locally defined integer (which must be greater than 0), that the system passes back to you in your onActivityResult() 
        // implementation as the requestCode parameter. 
        int REQUEST_ENABLE_BT = 1;
        startActivityForResult(intentBtEnabled, REQUEST_ENABLE_BT);
        }
  }

দ্বিতীয় ফাংশনটি হ'ল:

public void enableBT(View view){
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    if (!mBluetoothAdapter.isEnabled()){
        mBluetoothAdapter.enable();
    }
}

পার্থক্যটি হ'ল প্রথম কার্যটি অ্যাপ্লিকেশনটিকে ব্যবহারকারীকে ব্লুটুথ চালু করার বা অস্বীকার করার জন্য অনুমতি চাইতে পারে। দ্বিতীয় ফাংশনটি অ্যাপটিকে সরাসরি ব্লুটুথ চালু করে তোলে।

ব্লুটুথ অক্ষম করতে নিম্নলিখিত ফাংশনটি ব্যবহার করুন:

public void disableBT(View view){
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    if (mBluetoothAdapter.isEnabled()){
        mBluetoothAdapter.disable();
    }
}

দ্রষ্টব্য / প্রথম কার্যটির অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল ফাইলে সংজ্ঞায়িত করার জন্য কেবলমাত্র নিম্নলিখিত অনুমতি প্রয়োজন:

<uses-permission android:name="android.permission.BLUETOOTH"/>

যদিও, দ্বিতীয় এবং তৃতীয় ফাংশনগুলির জন্য নিম্নলিখিত অনুমতিগুলির প্রয়োজন:

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

আমি মনে করি প্যারামিটারটি (দেখুন দেখুন) প্রয়োজনীয় নয়
সিট্রাস 2

6

প্রিজিনের সমাধানটি আমার পক্ষে পুরোপুরি কাজ করেছিল। দু'টি অতিরিক্ত অনুমতি প্রয়োজন বলে উল্লেখ করা কেবল ন্যায়সঙ্গত:

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

এগুলি যুক্ত হয়ে গেলে, সক্ষম ও অক্ষম করা ডিফল্ট ব্লুটুথ অ্যাডাপ্টারের সাহায্যে নির্দোষ কাজ করে।


4

আমার অ্যাপটি চালু হয়ে গেলে এবং ঠিকঠাকভাবে কাজ করলে আমি বিটি অক্ষম করতে নীচের কোডটি ব্যবহার করি। গুগল "ব্লুটুথ.ডিজিয়েবল ()" ব্যবহার না করার পরামর্শ দিলে এটি প্রয়োগ করার সঠিক উপায় কিনা তা নিশ্চিত নন; ব্লুটুথ বন্ধ করতে সুস্পষ্ট ব্যবহারকারীর ক্রিয়া ছাড়াই।

    BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
    bluetooth.disable();

আমি কেবল নীচের অনুমতিটি ব্যবহার করেছি।

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

2

আপনার মেনিফেস্ট ফাইলটিতে নিম্নলিখিত অনুমতিগুলি যুক্ত করুন:

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

এটি ব্যবহার করে ব্লুটুথ সক্ষম করুন

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();    
if (!mBluetoothAdapter.isEnabled()) {
    mBluetoothAdapter.enable(); 
}else{Toast.makeText(getApplicationContext(), "Bluetooth Al-Ready Enable", Toast.LENGTH_LONG).show();}

এটি ব্যবহার করে ব্লুটুথ অক্ষম করুন

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();    
if (mBluetoothAdapter.isEnabled()) {
    mBluetoothAdapter.disable(); 
}

0

এটা চেষ্টা কর:

//this method to check bluetooth is enable or not: true if enable, false is not enable
public static boolean isBluetoothEnabled()
    {
        BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        if (!mBluetoothAdapter.isEnabled()) {
            // Bluetooth is not enable :)
            return false;
        }
        else{
            return true;
        }

    }

//method to enable bluetooth
    public static void enableBluetooth(){
        BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        if (!mBluetoothAdapter.isEnabled()) {
            mBluetoothAdapter.enable();
        }
    }

//method to disable bluetooth
    public static void disableBluetooth(){
        BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        if (mBluetoothAdapter.isEnabled()) {
            mBluetoothAdapter.disable();
        }
    }

ম্যানিফেস্টে এই অনুমতিগুলি যুক্ত করুন

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.