روشن کردن بلوتوث در broadcastreceiver
سلام
من میخوام تو broadcastreceiver بلوتوث رو روشن کنم
چطوری و با چه کدی این کار رو انجام بدم؟
ممنون میشم کمک کنید
فکر کنم یکم اشتباه متوجه broadcastreceiver ها شدی ، همون طور که از اسمش مشخصه شما میتونی وقتی یه اتفاقی افتاد اون رو دریافت کنید ، مثلا روشن شدن بلوثوت یا اتصال به اینترنت و ...
برای روشن کردن بلوتوث به این شکل عمل کن :
//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"/>
من این رسیور را برای Wifi نوشته بودم برای بلوتوث هم دقیق مثل همینه فقط State ها فرق داره. کارش اینه که وقتی برنامه بازه دکمه را که میزنی وای فای روشن میشه اما Toast نمیده و فقط TextView مقدارش تغییر میکنه اما وقتی برنامه توی حافظه هست اما روی اسکرین نیست ( درواقع برنامه دیگه ای بازه) وقتی شما از توی تنظیمات wifi را روشن کنی روی صفحه Toast میده. فکنم خوب بتونی ازش الهام بگیری من خودم با انجام این پروژه خیلی چیزا راجع به رسیورها یاد گرفتم
public class WifiReceiver extends BroadcastReceiver {
public static final String WIFI_DISABLED = "Wifi Stat is Disabled";
public static final String WIFI_DISABLING = "Wifi Stat is Disabling";
public static final String WIFI_ENABLED = "Wifi Stat is Enabled";
public static final String WIFI_ENABLING = "Wifi Stat is Enabling";
public static final String WIFI_UNKNOWN = "Wifi Stat is Unknown";
@Override
public void onReceive(Context context, Intent intent) {
int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN);
switch (wifiState) {
case WifiManager.WIFI_STATE_DISABLED:
G.showMessage(WIFI_DISABLED);
break;
case WifiManager.WIFI_STATE_DISABLING:
G.showMessage(WIFI_DISABLING);
break;
case WifiManager.WIFI_STATE_ENABLED:
G.showMessage(WIFI_ENABLED);
break;
case WifiManager.WIFI_STATE_ENABLING:
G.showMessage(WIFI_ENABLING);
break;
case WifiManager.WIFI_STATE_UNKNOWN:
G.showMessage(WIFI_UNKNOWN);
break;
}
}
}
اینم کلاس G
public class G extends Application {
public static boolean isRunActivity = true;
public static String dataReceived;
private static Context context;
public static TextView txtMessage;
@Override
public void onCreate() {
context = this;
super.onCreate();
}
public static void showMessage(String data) {
if (isRunActivity == false) {
Toast.makeText(context, data, Toast.LENGTH_SHORT).show();
} else {
txtMessage.setText(data);
}
}
}
اینم activity اصلیم
public class ActivityWifiToast extends Activity {
private boolean wifiEnabled = false;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
G.isRunActivity = true;
G.txtMessage = (TextView) findViewById(R.id.txtMessage);
final Button btnWifi = (Button) findViewById(R.id.btnWifi);
final WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
btnWifi.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
wifiEnabled = wifiManager.isWifiEnabled();
if (wifiManager == null) {
Toast.makeText(ActivityWifiToast.this, "No Wifi availabe on device", Toast.LENGTH_SHORT).show();
} else {
if (wifiEnabled == false) {
wifiManager.setWifiEnabled(true);
} else {
wifiManager.setWifiEnabled(false);
}
}
}
});
}
@Override
protected void onPause() {
G.isRunActivity = false;
super.onResume();
}
@Override
protected void onResume() {
if (G.isRunActivity == false) {
G.isRunActivity = true;
}
super.onResume();
}
}
اینم فایل xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" android:gravity="center" android:padding="10dip">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_marginBottom="20dip">
<TextView
android:layout_width="0dip"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Wifi State : " android:layout_weight="0.4" android:textColor="#ffffff" android:textSize="16dip"/>
<TextView
android:id="@+id/txtMessage"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.6"
android:gravity="center"
android:textColor="#ffffff" android:textSize="16dip" android:text="..."/>
</LinearLayout>
<Button
android:id="@+id/btnWifi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .