編輯:關於Android編程
藍牙(BlueTooth)要求的最低版本是android2.0,由於Android模擬器不支持藍牙,運行藍牙的有關應用必須在真機上測試運行。
藍牙是一種重要的短距離無線通信協議,廣泛應用於各種設備(手機,醫療,汽車等)。藍牙是比較常用的無線通信設備,早研究成為手機的標配。
在Android中,與藍牙有關的類和接口在android.bluetooth包中。其中BluetoothAdapter是藍牙中的核心類,
代表本地的藍牙適配器設備。BluetoothAdapter類讓用戶能執行基本的藍牙任務。例如: 初始化設備的搜索,查詢可匹配的設備集,使用一個已知的MAC地址來初始化一個BluetoothDevice類,創建一個 BluetoothServerSocket類以監聽其它設備對本機的連接請求等。
當我們使用藍牙時會先判斷當前手機是否打開了藍牙,然後在進行相應的處理。
下面我們看看怎樣打開藍牙設備。
1.我們調用時除了需要考慮API Level至少為5外,還需注意添加相應的權限,比如使用通訊需要在androidmanifest.xml加入,而開關藍牙需要android.permission.BLUETOOTH_ADMIN權限。
只要是有關藍牙的應用程序這兩個不可少。
2JAVA主要代碼:
[java]
package com.example.open_local_bluetooth;
import android.os.Bundle;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.content.Intent;
import android.view.Menu;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter
.getDefaultAdapter();
if (mBluetoothAdapter == null) {
Toast.makeText(this, "本機沒有找到藍牙硬件或驅動!", Toast.LENGTH_SHORT).show();
finish();
}
// 如果本地藍牙沒有開啟,則開啟
if (!mBluetoothAdapter.isEnabled()) {
// 我們通過startActivityForResult()方法發起的Intent將會在onActivityResult()回調方法中獲取用戶的選擇,比如用戶單擊了Yes開啟,
// 那麼將會收到RESULT_OK的結果,
// 如果RESULT_CANCELED則代表用戶不願意開啟藍牙
Intent mIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(mIntent, 1);
// 用enable()方法來開啟,無需詢問用戶(實惠無聲息的開啟藍牙設備),這時就需要用到android.permission.BLUETOOTH_ADMIN權限。
// mBluetoothAdapter.enable();
// mBluetoothAdapter.disable();//關閉藍牙
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
Toast.makeText(this, "藍牙已經開啟", Toast.LENGTH_SHORT).show();
} else if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "不允許藍牙開啟", Toast.LENGTH_SHORT).show();
finish();
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
package com.example.open_local_bluetooth;
import android.os.Bundle;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.content.Intent;
import android.view.Menu;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter
.getDefaultAdapter();
if (mBluetoothAdapter == null) {
Toast.makeText(this, "本機沒有找到藍牙硬件或驅動!", Toast.LENGTH_SHORT).show();
finish();
}
// 如果本地藍牙沒有開啟,則開啟
if (!mBluetoothAdapter.isEnabled()) {
// 我們通過startActivityForResult()方法發起的Intent將會在onActivityResult()回調方法中獲取用戶的選擇,比如用戶單擊了Yes開啟,
// 那麼將會收到RESULT_OK的結果,
// 如果RESULT_CANCELED則代表用戶不願意開啟藍牙
Intent mIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(mIntent, 1);
// 用enable()方法來開啟,無需詢問用戶(實惠無聲息的開啟藍牙設備),這時就需要用到android.permission.BLUETOOTH_ADMIN權限。
// mBluetoothAdapter.enable();
// mBluetoothAdapter.disable();//關閉藍牙
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
Toast.makeText(this, "藍牙已經開啟", Toast.LENGTH_SHORT).show();
} else if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "不允許藍牙開啟", Toast.LENGTH_SHORT).show();
finish();
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
3配置文件:AndrodManifest.xml
[html]
package="com.example.open_local_bluetooth"
android:versionCode="1"
android:versionName="1.0" >
android:targetSdkVersion="17" />
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:name="com.example.open_local_bluetooth.MainActivity"
android:label="@string/app_name" >
package="com.example.open_local_bluetooth"
android:versionCode="1"
android:versionName="1.0" >
android:targetSdkVersion="17" />
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:name="com.example.open_local_bluetooth.MainActivity"
android:label="@string/app_name" >
Bluetooth Using the Bluetooth APIs, an Android application can perform the following:
前面我簡單的介紹了android的一些基礎知識,當作熱身吧,接下來接觸android的四大組件的activity活動。 1.活動Activity是是一種保護用戶界面的組件
前言:自己在學習的過程中的一些操作過程,對分享的一些理解。下面就講解一下: 首先,我們需要去ShareSdk官方網站http://shares
Android設備有兩種文件存儲區域:內部存儲和外部存儲 (internal and external storage)。這名字來自早期Android,那時大多數Andr