• 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

[Chú ý] Thắc mắc về lập trình Basic4Android

Lập trình cho Android Phone

Moderator: tummosoft

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

[Chú ý] Thắc mắc về lập trình Basic4Android

Postby tummosoft » Wed 10/09/2014 10:40 am

Bạn nào có thắc mắc hay yêu cầu gì về lập trình Basic4Android xin post câu hỏi tại đây để mọi người cùng nhau nghiên cứu trẳ lời.


:) Tummo Software :D
https://www.tummosoftware.com

User avatar
HaiVB6
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 375
Joined: Mon 03/02/2014 10:23 pm
Location: [Gia Đông] - [Thuận Thành] - [Bắc Ninh]
Has thanked: 5 times
Been thanked: 14 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby HaiVB6 » Wed 10/09/2014 5:46 pm

Có cách nào để khi đến đúng giờ mà mình cài thì nó sẽ tự động hiện lên thông báo kèm âm thanh không?

User avatar
tungblt
Điều hành viên
Điều hành viên
Posts: 550
Joined: Mon 22/12/2008 5:22 pm
Location: quy nhơn
Has thanked: 8 times
Been thanked: 77 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby tungblt » Thu 11/09/2014 11:13 am

ở Bài 28 - Kết nối MySQL Server viewtopic.php?f=70&t=29496 .
dùng thư viện mysql thì không kết nối được. còn dùng Remote Database Connector thì rất dễ lỗi (đính kèm).
Attachments
image.png
image.png (23.06 KiB) Viewed 10878 times
love

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby tummosoft » Thu 11/09/2014 2:42 pm

HaiVB6 wrote:Có cách nào để khi đến đúng giờ mà mình cài thì nó sẽ tự động hiện lên thông báo kèm âm thanh không?


- Để tạo 1 chương trình chạy ngầm, khi đến giờ nó play một file âm thanh, em phải dùng Module Service.

Ex: Ta tạo 1 Module Service với tên là "AlarmService"

  1. Sub Process_Globals
  2.     'These global variables will be declared once when the application starts.
  3.     'These variables can be accessed from all modules.
  4.     Dim mp As MediaPlayer     ' You need to declare mp as Mediaplayer
  5. End Sub
  6. Sub Service_Create
  7.  
  8. End Sub
  9.  
  10. Sub Service_Start
  11. mp.Initialize()  'Initialize Mediaplayer
  12. PlayAlarm
  13. ToastMessageShow("Hey!!!! Wake up!!!", True)
  14. End Sub
  15.  
  16. Sub Service_Destroy
  17.     StopService("")     'Stop this service
  18.     CancelScheduledService("")   'Cancel this service
  19. End Sub
  20.  
  21.  
  22. Sub PlayAlarm
  23. mp.Load(File.DirAssets, "sound.wav")
  24. mp.Play
  25. End Sub


- Để Setup giờ hẹn, ví dụ tại Main Activity ta thiết lập 2 button setup và cancel.

+ Dùng hàm StartServiceAt để khởi động tiến trình chạy ngầm với thời gian xác định
StartServiceAt(AlarmService, (DateTime.Now+((h*60*60*1000)+(m*60*1000))), True)

+ Để kết thúc tiến trình một Module Service
StopService(AlarmService)
CancelScheduledService(AlarmService)


[vb]Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim alarmHours, alarmMinutes As Int
Dim noti As Notification
End Sub

Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Dim SetTime As Button
Dim CancelAlarm As Button
End Sub

Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("main")
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub


Sub SetTime_Click
Dim td As TimeDialog
td.Hour = alarmHours
td.Minute = alarmMinutes
If td.Show("Select time to alarm", "", "Ok", "Cancel", "", Null) = DialogResponse.POSITIVE Then
alarmHours = td.Hour
alarmMinutes = td.Minute
Dim today As Long
today = DateTime.DateParse(DateTime.Date(DateTime.Now)) 'Sets today at 12:00 AM
alarm = today + td.Hour * DateTime.TicksPerHour + td.Minute * DateTime.TicksPerMinute
If alarm < DateTime.Now Then alarm = DateTime.Add(alarm, 0, 0, 1)
Log(DateTime.Date(alarm) & " " & DateTime.Time(alarm)) 'check the logs to see the set date and time
'Calculate time to alarm
Dim h, m As Int
h = Floor((alarm - DateTime.Now) / DateTime.TicksPerHour)
m = ((alarm - DateTime.Now) - h * DateTime.TicksPerHour) / DateTime.TicksPerMinute

ToastMessageShow("Alarm will start after: " & NumberFormat(h, 2, 0) & " hour(s) and " & NumberFormat(m, 2, 0) & " minute(s)", True)
StartServiceAt(AlarmService, (DateTime.Now+((h*60*60*1000)+(m*60*1000))), True)
' Schedule AlarmService will start by add time to DateTime.Now (note that Android use millisecond)

noti.Initialize
noti.Light = False
noti.Vibrate = False
noti.OnGoingEvent = True
noti.Sound = False
noti.Icon = "icon"
noti.SetInfo("Alarm", "will start at " & DateTime.Date(alarm) & " " & DateTime.Time(alarm), "")
noti.Notify(1)
End If

End Sub

Sub CancelAlarm_Click
noti.Cancel(1)
StopService(AlarmService)
CancelScheduledService(AlarmService)
End Sub[/vb]
Attachments
simple_alarm.zip
Tập tin đính kèm ví dụ
(235.76 KiB) Downloaded 293 times
:) Tummo Software :D
https://www.tummosoftware.com

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby tummosoft » Thu 11/09/2014 2:51 pm

tungblt wrote:ở Bài 28 - Kết nối MySQL Server viewtopic.php?f=70&t=29496 .
dùng thư viện mysql thì không kết nối được. còn dùng Remote Database Connector thì rất dễ lỗi (đính kèm).


Bên Basic4Android nói đây là lỗi liên quan đến việc xử lý của Response.GetString khi trả về giá trị Null

Bạn có thể khắc phục lỗi này bằng cách bẫy lỗi của nó như cách bên dưới

  1. Sub hc_ResponseError (Response As HttpResponse, Reason As String, StatusCode As Int, TaskId As Int)
  2.    countWorking = countWorking - 1
  3.    finishTasks = finishTasks + 1
  4.    HandleError(TaskId, Reason)
  5.    If Response <> Null Then
  6.       Log(Response.GetString("UTF8"))
  7.       Response.Release
  8.    End If
  9.    ProcessNextTask
  10. End Sub
:) Tummo Software :D
https://www.tummosoftware.com

User avatar
HaiVB6
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 375
Joined: Mon 03/02/2014 10:23 pm
Location: [Gia Đông] - [Thuận Thành] - [Bắc Ninh]
Has thanked: 5 times
Been thanked: 14 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby HaiVB6 » Thu 11/09/2014 2:54 pm

Cảm ơn bạn Tummosoft nhé! :)

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby tummosoft » Thu 11/09/2014 3:14 pm

Thư viện MySQL như mình hướng dẫn trong bài trên sử dụng jdbc driver

Trước hết, bạn test code không thành công có lẽ do chưa tải về jdbc driver: http://dev.mysql.com/get/Downloads/Conn ... mysql.com/

Sau khi giải nén, chép file mysql-connector-java-5.1.22-bin.jar vào thư viện Basic4Android.

Thêm quyền vào tập tin Manifest

AddPermission("android.permission.INTERNET")
AddPermission("android.permission.ACCESS_NETWORK_S TATE")​


* Lưu ý: Do user name và password truy cập MySQL nằm trong App nên cách này không được khuyến khích sử dụng.
:) Tummo Software :D
https://www.tummosoftware.com

User avatar
tungblt
Điều hành viên
Điều hành viên
Posts: 550
Joined: Mon 22/12/2008 5:22 pm
Location: quy nhơn
Has thanked: 8 times
Been thanked: 77 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby tungblt » Thu 11/09/2014 7:00 pm

làm sao để đổi tên app .. cái nào cũg là B4A ..
Attachments
2014-09-11_18-59-17.png
2014-09-11_18-59-17.png (81.95 KiB) Viewed 10870 times
love

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby tummosoft » Fri 12/09/2014 7:51 am

Tại activity main, trong nhóm attributes ở đầu trang chổ thẻ application label bạn đổi tên nhãn tại chổ nào có dòng B4A....

Tiếp theo, đặt tên cho project. Vào menu Project, chọn Package Name, và đổi tên của ứng dụng, tên của gói...

Chú ý: Tên của gói App phải đúng theo chuẩn của Android -> com.mycompany.myapp
:) Tummo Software :D
https://www.tummosoftware.com

User avatar
tungblt
Điều hành viên
Điều hành viên
Posts: 550
Joined: Mon 22/12/2008 5:22 pm
Location: quy nhơn
Has thanked: 8 times
Been thanked: 77 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby tungblt » Fri 12/09/2014 9:21 am

1/ Được rồi :D , cảm ơn bạn
2/ Bây giờ mình có button Exit nhưng không biết phải code như thế nào :(
3/
  1. Sub hc_ResponseError (Response As HttpResponse, Reason As String, StatusCode As Int, TaskId As Int)
  2.        Log("hc_ResponseError Response = " & Response.GetString("UTF8") & _
  3.       ", StatusCode = " & StatusCode & ", TaskId = " & TaskId)
  4.         If Response <> Null Then
  5.                 Log(Response.GetString("UTF8"))
  6.                 Response.Release
  7.         End If
  8.         ProgressDialogHide
  9. End Sub

mình cũng bẫy lỗi nhưng vẫn hiện bạn à
love

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby tummosoft » Fri 12/09/2014 1:56 pm

* Nút Close

Chu kỳ làm việc của một Activity như sau:

Sub Activity_Create(FirstTime As Boolean)

End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub


- > Khởi động Activity -> Gọi lại Activity -> Activity bị tạm ngưng

Trên hệ điều hành Android, chu kỳ làm việc (process) của nó không có thiết kế khái niệm "thoát khỏi ứng dụng" bằng một nút close như Windows.

Ví dụ chương trình của bạn có 2 Activity có tên là Main và Menu

Từ Main Activity, để mở Activity Menu ta dùng hàm "StartActivity(Menu)". Khi "Menu" được khởi động, Main sẽ được đặt vào trạng thái Activity_Pause và "Menu" sẽ đặt vào trạng thái Activity_Create.

Khi người dùng đang ở Activity Menu, họ nhấn nút BACK, Android sẽ tự động đưa người dùng trở về với Main Activity, lúc này Activity_Resume sẽ được gọi. Tại đây, nếu người dùng nhấn BACK thì chương trình thoát ra hỏi phiên làm việc, Activity_Pause sẽ được gọi nhưng App vẫn tồn tại ở chế độ nền.

Như vậy, một Activity_Pause được khởi động do bốn nguyên nhân:

1- Có một activity được kích hoạt
2- Do người dùng nhấn nút HOME trên điện thoại
3- Có một sư kiện xảy ra, ví dụ như xoay chuyển màn hình...
4 - Nút BACK được nhấn

- > Khi sự kiện 1 và 2 xảy ra, Android vẫn lưu các process trong bộ nhớ
-> Khi sự kiện 3 xảy ra, activity của process trước sẽ bị hũy và nó sẽ tái tạo lại một process mới thay thế.
-> Khi sự kiện 4 xảy ra, activity bị tạm dừng và hủy.

[b]Basic4Android có 2 phương thức dùng để kết thúc một process[/b]
- Activity.Finish : Kết thúc Activity hiện tại.
- ExitApplication : Kết thúc tất cả process. Nhưng nếu có một Module Service nào còn hoạt động, nó sẽ tái nạp các Module này.

Dựa theo chu kỳ làm việc này, ta làm một nút Close như sau:

- Tạo một biến ForceClose As Boolean tại process_globals

- Và tại Button dùng để Close ta code:

Sub CloseDown_Click
Main.forceClose = True
Activity.Finish
End Sub


- Tại Activity con ta code trong sub Resume

[color=#008000][color=#008000]Sub Activity_Resume
If Main.forceClose Then Activity.Finish
End Sub
[/color][/color]
- Tại Main Activity ta code trong sub Resume

Sub Activity_Resume
If forceClose Then ExitApplication
End Sub


-> Như vậy Application sẽ được đóng
:) Tummo Software :D
https://www.tummosoftware.com

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby tummosoft » Fri 12/09/2014 3:49 pm

Về phần MySQL bạn xem tại đây: viewtopic.php?f=70&t=29618
:) Tummo Software :D
https://www.tummosoftware.com

phuoc_89
Thành viên chính thức
Thành viên chính thức
Posts: 11
Joined: Sun 11/07/2010 9:13 am
Has thanked: 2 times
Been thanked: 1 time

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby phuoc_89 » Wed 17/09/2014 4:09 pm

Mình đang mày mò về cách gửi thông điệp INTENT đến một ứng dụng khác và cách nhận các dử liệu Intent từ các ứng dụng khác gửi đến, mong mọi người chia sẻ soucer code hoặc cho ví dụ được không. Cám ơn mọi người trước.

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby tummosoft » Thu 18/09/2014 12:44 pm

Bạn xem thêm một số ví dụ về sử dụng Intent tại đây: http://www.basic4ppc.com/android/wiki/index.php/Intent
:) Tummo Software :D
https://www.tummosoftware.com

phuoc_89
Thành viên chính thức
Thành viên chính thức
Posts: 11
Joined: Sun 11/07/2010 9:13 am
Has thanked: 2 times
Been thanked: 1 time

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby phuoc_89 » Tue 23/09/2014 11:22 am

Bạn cho souce code được ko? mình chưa hiểu cách gửi Intent và bắt Intent giữa 2 ứng dung???

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby tummosoft » Tue 23/09/2014 4:18 pm

Để truyền dữ liệu giữa 2 ứng dụng, trước hết bạn cần xác định tên gói của ứng dụng là gì?

* Sử dụng thư viện Phone để tìm tên gói ứng dụng

Dim pm As PackageManager
Dim Packages As List

Packages = pm.GetInstalledPackages
For i = 0 To Packages.Size - 1
Log(pm.GetApplicationIntent(Packages.Get(i)))
Next


Sau khi chạy code, truy cập vào biến log bạn sẽ thấy tên một số gói ứng dụng được cài đặt

Ví dụ:
  1. (Intent) Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.android.browser cmp=com.android.browser/.BrowserActivity }
  2. (Intent) Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.android.calculator2 cmp=com.android.calculator2/.Calculator }
  3. (Intent) Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.android.calendar cmp=com.android.calendar/.AllInOneActivity }


* Gửi dữ liệu đến ứng dụng

Dim Intent1 As Intent

- Intent1.Initialize(Intent1.ACTION_MAIN, "")

Có nhiều kiểu ACTION (xem thêm: http://developer.android.com/reference/ ... ntent.html), và để gửi data đến một ứng dụng khác sẽ dùng:
ACTION_EDIT - mở 1 Activity cho phép chỉnh sửa dữ liệu mà địa chỉ lấy từ data URI
ACTION_SEND - mở 1 Activity cho phép gửi dữ liệu lấy từ data URI, kiểu của dữ liệu xác định trong thuộc tính type
ACTION_SENDTO - mở 1 Activity cho phép gửi thông điệp tới địa chỉ lấy từ data URI

- Intent1.SetType(""text/plain"")

Xác định kiểu dữ liệu MIME để get hay set từ Intent (danh sách các kiểu: http://www.freeformatter.com/mime-types-list.html)

Ví dụ: text/plain; cũng có thể dùng text/* hoặc */*

- Intent1.AddCategory("android.intent.category.DEFAULT")

Thiết lập category

- Intent1.SetComponent("com.android.calculator2/.Calculator")

Thiết lập Activity chính của gói từ ví dụ trên, chẳng hạn trình duyêt có Component là: com.android.browser cmp=com.android.browser/.BrowserActivity

- Intent1.PutExtra("customExtra", "12")

Gửi dữ liệu đến ứng dụng thứ 2, với "customExtra" là tên của biến và "12" là giá trị

* Toàn bộ code:

[vb]Intent1.Initialize(Intent1.ACTION_SEND, "")
Intent1.SetType("*/*")
Intent1.AddCategory("android.intent.category.DEFAULT")
Intent1.SetComponent("com.android.calculator2/.Calculator")
Intent1.PutExtra("query", "12")
StartActivity(Intent1)[/vb]

* Hoặc ví dụ dùng gửi đoạn text lên Google Search

[vb]Sub SetPackage(i As Intent, PackageName As String)
'couldn't find SetPackage-method among B4A's default intents. We therefore use Agraham's reflection-library to add it.
Dim rf As Reflector
rf.Target = i
rf.RunMethod2("setPackage", PackageName, "java.lang.String")
End Sub

dim intent1 as intent
Intent1.Initialize("android.intent.action.SEARCH", "")
SetPackage(Intent1, "com.google.android.youtube")
Intent1.PutExtra("query", test)
StartActivity(Intent1)[/vb]

* Một số ví dụ khác bạn có thể tham khảo thêm:
http://www.basic4ppc.com/android/forum/ ... ail.26211/
http://www.basic4ppc.com/android/forum/ ... ent.17001/
http://www.basic4ppc.com/android/forum/ ... ent.41261/
http://www.basic4ppc.com/android/forum/ ... ent.30976/
http://www.basic4ppc.com/android/forum/ ... app.26437/
:) Tummo Software :D
https://www.tummosoftware.com

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby tummosoft » Tue 23/09/2014 4:36 pm

Mình quên nói, bạn cần phải thêm quyền Action và Category có liên quan vào tập tin Manifest nữa nhé:

VD: <category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.ACTION_INSERT" />

Communicating between apps
Depending on how you want to get data from the other app (via StartActivityForResult or via another intent), following might be useful to you.
Providing an intent for other apps to access you:
Write an intent filter in your manifest

- Action
- Category


Optionally create a permission for your intent so only allowed apps can access it

- <permission>
- <uses-permission>

Create an activity or service to deal with this intent.

- Activity for foreground action, service for background action.
- Use GetStartingIntent to get the intent and then Intent.GetExtras to get any extra information
- If using StartActivityOnResult then use SetActivityResult to return an intent and data (in extras)
- If using StartActivityOnResult you can get the CallingPackageName else you cannot
- Return with Activity.Finish
- Intents are not serializable, you cannot write them to file, only the extras


Access the Intent in another app:
Create the intent as specified by the other app, and use StartActivity or StartActivityForResult
Handle the immediate result if any in Activity_OnResult (or other event)
Handle an other intent that the app fires back to you. In this case do the same steps as above.

Intent Based Inter-App Communication
In this example we have two apps. - The Provider, that contains the data we need - The Requester, that will request the data via Intent
Step 1: Setup the Provider to be able to receive intents This can be done in two ways: 1. Explicitly setting the component, and making it visible by setting exported=true 2. Defining your own intent filter
We will do the second way since it is more structured.
We set up an intent filter to trigger our activity in the Provider. In the manifest editor add the following, for the Activity you want to trigger. You can also use a service (use AddServiceText instead) AddActivityText(Main, <intent-filter>

<action android:name="com.maximussoft.myprovider.REQUEST" />
<category android:name="android.intent.category.DEFAULT" />


</intent-filter>)

Step 2: Code the Provider to return the data When using an Activity, Sub Activity_Resume

Dim in as Intent
in = Activity.GetStartingIntent
If in <> null Then
If In.HasExtra("GetSettings") Then
SendSettings(in)
Activity.Finish
Return
End If
End If


...so far so good... however do you see the problem here? no? come on think harder
How does the Providor know which app to send the data back to? The Intent by default has no information about the Calling package.
Again, there are two (simpler) ways to deal with this 1. Add information about the Requestor in the intent extras so we can call it back 2. Use StartActivityForResult. This allows you to get the calling package name, but infact you do not even need it. You can just return the result as an intent back to the Requestor Activity.
However, this is the point where you pause and think about what your apps need to do. Are they working silently in the background? Or do they show a dialog at some point?
For now, we go with the first option, and assume that the Requestor sends us an intent action in the extras.
So in SendSettings we do, Sub SendSettings(in as Intent)

Dim returnIntent as Intent
returnIntent.Initialize(in.GetExtra("Callback"),"")
returnIntent.AddCategory("android.intent.category.DEFAULT")
returnIntent.PutExtra("Settings",someGlobalSettings)
returnIntent.PutExtra("Successful","True")
StartActivity(returnIntent) 'Or StartService(returnIntent)


3. Set up the Requester As you may have noticed, the Requester needs to be set up in the exact same way except for some minor differences. First you set up the manifest, with a different intent filter:

AddActivityText(Main, <intent-filter>
<action android:name="com.maximussoft.myrequestor.CALLBACK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>)


4. Code the Requester to request the data/settings This can be anywhere in your code, but if its settings you want to request, it will probably be in activity create or resume. The thing to note here is how we initialiaze the intent with the ACTION of the PROVIDER. And we send the CallBack i.e. the intent of the REQUESTER as the CALLBACK so the provider can send us back the data.

Sub RequestSettings
Dim in as Intent
in.Initialize("com.maximussoft.myprovider.REQUEST","")
in.AddCategory("android.intent.category.DEFAULT")
in.PutExtra("CallBack","com.maximussoft.myrequestor.CALLBACK")
in.PutExtra("GetSettings","True")
StartActivity(in) 'Or StartService(returnIntent)
End Sub


5. Code the Requester to accept the data Again this code is very similar to the Provider except that is gets the data

Sub Activity_Resume
Dim in as Intent
in = Activity.GetStartingIntent
If in <> null Then
If In.HasExtra("Settings") Then
AcceptSettings 'Do something here with your settings
End If
End If
End Sub


Points to note: While I dont consider intents to be very advanced, it can be quite overwhelming for newbies, so do your research.
There are many ways to do things and combinations of services/activities can make things complicated.
You can add permissions on your intent filters, this way Plugin apps need to have your permission in their manifest. This helps in *some* access control, mainly you can list all apps that can access your app/settings/data.
:) Tummo Software :D
https://www.tummosoftware.com

phuoc_89
Thành viên chính thức
Thành viên chính thức
Posts: 11
Joined: Sun 11/07/2010 9:13 am
Has thanked: 2 times
Been thanked: 1 time

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby phuoc_89 » Thu 25/09/2014 6:10 pm

Thank bạn tummosoft nhiều, mình đã hiểu rồi, tùy biến code xí là ok

boytin
Thành viên chính thức
Thành viên chính thức
Posts: 16
Joined: Mon 22/09/2014 11:05 am

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby boytin » Tue 30/09/2014 10:32 am

Việt Nam có nhiều người chọn VB để lập trình cho Android không nhỉ? có ở đâu dạy B4A này không? thành lập hội để phát triển có tốt hơn không?

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

Re: [Chú ý] Thắc mắc về lập trình Basic4Android

Postby tummosoft » Wed 01/10/2014 3:36 pm

Mình không biết cụ thể nhưng có nhiều người đó bạn. Nhưng ngoài CauLacBoVB chưa có diễn đàn nào phổ biến B4A.
:) Tummo Software :D
https://www.tummosoftware.com


Return to “Android”

Who is online

Users browsing this forum: No registered users and 2 guests