• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

[Basic4Android] Bài 12 - Volume, pin, độ sáng màn hình

Lập trình cho Android Phone

Điều hành viên: tummosoft

Hình đại diện của người dùng
tummosoft
Điều hành viên
Điều hành viên
Bài viết: 331
Ngày tham gia: T.Hai 19/05/2014 2:23 pm
Has thanked: 7 time
Been thanked: 57 time
Liên hệ:

[Basic4Android] Bài 12 - Volume, pin, độ sáng màn hình

Gửi bàigửi bởi tummosoft » T.Hai 28/07/2014 8:10 am

Bài 13 vẫn tiếp tục làm việc với lớp thư viện Phone và đối tượng Phone.

Đối tượng Phone đã được nhắc tới trong bài 10: Danh bạ và thông tin về điện thoại (http://caulacbovb.com/forum/viewtopic.php?f=70&t=29399), qua việc lấy thông tin về cấu hình máy, mạng.... Một số hàm chức năng khác của Phone object đòi hỏi phối hợp với các thư viện khác mới có thể làm việc nên phải tách ra thành nhiều bài khác nhau, thay vì tổng hợp thành một chủ đề như trước.

Vì vậy, bạn cần phải lưu ý để load thư viện Phone vào project.

Sau đây là một ví dụ về điều chỉnh độ sáng màn hình và độ lớn âm thanh bằng control SeekBar

1- Khai báo biến

Dim myPhone As Phone

- Gọi lớp thư viện Audio
Dim PlayMP3 As MediaPlayer

- Khai báo biến để bẫy một sự kiện PhoneEvents
Dim EvenementPhone As PhoneEvents

2- Khai báo giá trị Max, giá trị hiện thời cho Seekbar

skBrightness.Initialize("skBrightness")
skBrightness.Max = 100
skBrightness.Value = 50


3- Tại sự kiện ValueChanged của Seekbar, ta bẫy code thay đổ volume

Sub skSound_ValueChanged (Value As Int, UserChanged As Boolean)
............
End Sub


Khai báo biến lấy thông tin volume
Dim PhVol, MaxVol As Float

Lấy volume của chanel hiện thời
[color=#008000]PhVol = myPhone.GetVolume(myPhone.VOLUME_MUSIC)[/color]

Thiết lập mức độ âm thanh qua biến value
myPhone.SetVolume(myPhone.VOLUME_MUSIC, Value, False)

4 - Các chức năng khác xin xem code bên dưới

  1. #Region  Project Attributes
  2.     #ApplicationLabel: B4A Example
  3.     #VersionCode: 1
  4.     #VersionName:
  5.     'SupportedOrientations possible values: unspecified, landscape or portrait.
  6.     #SupportedOrientations: unspecified
  7.     #CanInstallToExternalStorage: False
  8. #End Region
  9.  
  10. #Region  Activity Attributes
  11.     #FullScreen: False
  12.     #IncludeTitle: True
  13. #End Region
  14.  
  15. Sub Process_Globals
  16.     'These global variables will be declared once when the application starts.
  17.     'These variables can be accessed from all modules.
  18.  
  19. End Sub
  20.  
  21. Sub Globals
  22.     'These global variables will be redeclared each time the activity is created.
  23.     'These variables can only be accessed from this module.
  24.  
  25.     Dim Spinner1 As Spinner
  26.     Dim Label1 As Label
  27.     Dim prBattery As ProgressBar
  28.     Dim Label4 As Label
  29.     Dim Label3 As Label
  30.     Dim Label2 As Label
  31.     Dim skSound As SeekBar
  32.     Dim skBrightness As SeekBar
  33.     Dim btPlay As Button
  34.    
  35.     ' Gọi đối tượng phone
  36.     Dim myPhone As Phone
  37.     ' Gọi lớp thư viện Audio
  38.     Dim PlayMP3 As MediaPlayer
  39.    
  40.     Dim EvenementPhone As PhoneEvents
  41.     'Dim btStop As Button
  42.     'Dim LoadID As Int
  43. End Sub
  44.  
  45. Sub Activity_Create(FirstTime As Boolean)
  46.     'Do not forget to load the layout file created with the visual designer. For example:
  47.     Activity.LoadLayout("main")
  48.    
  49.     skSound.Initialize("skSound")
  50.     skSound.Max = 2500
  51.     skSound.Value = 50
  52.    
  53.     skBrightness.Initialize("skBrightness")
  54.     skBrightness.Max = 100
  55.     skBrightness.Value = 50
  56.    
  57.     EvenementPhone.Initialize("EvenementPhone")
  58. End Sub
  59.  
  60. Sub Activity_Resume
  61.  
  62. End Sub
  63.  
  64. Sub Activity_Pause (UserClosed As Boolean)
  65.  
  66. End Sub
  67.  
  68. Sub skSound_ValueChanged (Value As Int, UserChanged As Boolean)
  69. ' Điều chỉnh âm lượng
  70.     If UserChanged Then
  71.         'PlayMP3.SetVolume(0,1)
  72.        
  73.          Dim PhVol,MaxVol As Float
  74.         PhVol = myPhone.GetVolume(myPhone.VOLUME_MUSIC)             'get current music channel volume
  75.         'MaxVol = myPhone.GetMaxVolume(myPhone.VOLUME_MUSIC)      'get max music channel volume
  76.         myPhone.SetVolume(myPhone.VOLUME_MUSIC, Value, False)      'set phone music channel to max volume
  77.  
  78.         'myPhone.GetMaxVolume(
  79.     End If
  80.    
  81. End Sub
  82.  
  83. Sub skBrightness_ValueChanged (Value As Int, UserChanged As Boolean)
  84. ' Điều chỉnh độ sáng màn hình
  85.     If UserChanged Then
  86.         myPhone.SetScreenBrightness(Max(Value, 5) / 100)
  87.     End If 
  88. End Sub
  89.  
  90. Sub btPlay_Click
  91.    
  92.     PlayMP3.Initialize2("PlayMP3")
  93.     PlayMP3.Load(File.DirAssets,"60nam.mp3")
  94.     PlayMP3.Play
  95.    
  96. End Sub
  97.  
  98. Sub btStop_Click
  99.     PlayMP3.Stop
  100. End Sub
  101.  
  102. Sub EvenementPhone_BatteryChanged(Level As Int, Scale As Int, Plugged As Boolean, Intent As Intent)
  103.     prBattery.Progress = Level
  104. End Sub


Hình ảnh


:) Tummo Software :D
http://tummosoft.com

Hình đại diện của người dùng
tummosoft
Điều hành viên
Điều hành viên
Bài viết: 331
Ngày tham gia: T.Hai 19/05/2014 2:23 pm
Has thanked: 7 time
Been thanked: 57 time
Liên hệ:

Re: [Basic4Android] Bài 13 - Volume, pin, độ sáng màn hình

Gửi bàigửi bởi tummosoft » T.Hai 28/07/2014 8:47 am

Đối tượng Phone

- GetDataState As String : Trả về ngày tháng của tình trạng connect của điện thoại

DISCONNECTED, CONNECTING, CONNECTED, SUSPENDED.

- GetMaxVolume (Channel As Int) As Int : Thiết lập mức âm thanh Volume; Chanel là kênh âm thanh: trái hoặc phải

- GetNetworkOperatorName As String : Trả bề tên của nhà mạng; Trả về chuỗi rỗng nếu không thể xác định

- GetNetworkType As String : Trả về kiểu mạng kết nối

Có các kiểu sau: 1xRTT, CDMA, EDGE, EHRPD, EVDO_0, EVDO_A, EVDO_B, GPRS, HSDPA, HSPA, HSPAP, HSUPA, IDEN, LTE, UMTS, UNKNOWN.

- GetPhoneType As String : Trả về tịnh trạng kết nối của điện thoại : CDMA, GSM, NONE.

- GetResourceDrawable (ResourceId As Int) As android.graphics.drawable.Drawable

Trả về một đối tượng drawable

Example:
  1. Dim p As Phone
  2. Dim bd As BitmapDrawable
  3. bd = p.GetResourceDrawable(17301618)
  4. Activity.AddMenuItem2("Menu1", "Menu1", bd.Bitmap)


- GetRingerMode As Int : Trả về kiểu chuông

Giá trị là một trong các constants kiểu chuông:

VOLUME_ALARM As Int
VOLUME_MUSIC As Int
VOLUME_NOTIFICATION As Int
VOLUME_RING As Int
VOLUME_SYSTEM As Int
VOLUME_VOICE_CALL As Int

- GetSettings (Settings As String) As String

Trả về giá trị ID của phone

Example:
  1. Dim p As Phone
  2. Log(GetSettings("android_id"))


- GetSimOperator As String : Trả về code của nhà cung cấp SIM

- GetVolume (Channel As Int) As Int : Lấy giá trị âm thanh của một kênh xác định

- HideKeyboard (Activity As ActivityWrapper) : Ẩn keyboard nếu nó xuất hiện

Example:
  1. Dim p As Phone
  2. p.HideKeyboard(Activity)


- IsAirplaneModeOn As Boolean : Xác định điện thoại có ở chế độ máy bay hay không

- IsNetworkRoaming As Boolean : Xác định điện thoại có đang Roangming nhờ một mạng hay không

- Manufacturer As String [read only] : Thông tin nhà sản xuất điện thoại

- Model As String [read only] : Model điện thoai

- Product As String [read only] : Lấy chỉ số product

- SdkVersion As Int [read only] : Lấy phiên bản SDK

- SendBroadcastIntent (Intent As android.content.Intent) : Gửi một intent đến tất cả BroadcastReceivers nào lắng nghe kiểu intent

Ex:
  1. Dim i As Intent
  2. i.Initialize("android.intent.action.MEDIA_SCANNER_SCAN_FILE", _
  3.     "file://" & File.Combine(File.DirRootExternal, "pictures/1.jpg"))
  4. Dim p As Phone
  5. p.SendBroadcastIntent(i)


- SetMute (Channel As Int, Mute As Boolean) : Tắt 1 kênh âm thanh đưỡ xác định

- SetRingerMode (Mode As Int) : Xác định kiểu chế độ chuông với Mode là các hằng

RINGER_NORMAL As Int
RINGER_SILENT As Int
RINGER_VIBRATE As Int

Example:
  1. Dim p As Phone
  2. p.SetRingerMode(p.RINGER_VIBRATE)


- SetScreenBrightness (Value As Float) : Thiết lập độ sáng màn hình, giá tri từ 0-1, nếu giá trị -1 cho độ sáng tự động.

- SetScreenOrientation (Orientation As Int) : Thay đổi hướng lật màn hình hiện tại. Phương thức này không thể gọi từ service module.
Giá trị -1 -> không xác đinh; 0 -> landscape; 1 -> portrait

- SetVolume (Channel As Int, VolumeIndex As Int, ShowUI As Boolean) : Thiết lập âm thanh cho một Chanel

Example:
  1. Dim p As Phone
  2. p.SetVolume(p.VOLUME_MUSIC, 3, True)


- Shell (Command As String, Args() As String, StdOut As StringBuilder, StdErr As StringBuilder) As Int

Chạy một SH script. Một vài lệnh bị khóa trên hệ điều hành do bảo mật.
Khi một SH được thực thi, nó sẽ khóa một thread khác cho đến khi script hoàn thành.

Args - Giá trị vào. Có thể là Null
StdOut - Giá trị đầu ra.
StdErr - Giá trị nếu xuất hiện lỗi

Example:
  1. Dim p As Phone
  2. Dim sb As StringBuilder
  3. sb.Initialize
  4. p.Shell("df", Null, sb, Null)
  5. Msgbox(sb.ToString, "Free space:")
:) Tummo Software :D
http://tummosoft.com


Quay về “Android”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách