Skip to content

Commit 977aded

Browse files
V5.20.2
1 parent c9c079b commit 977aded

16 files changed

Lines changed: 246 additions & 159 deletions

File tree

Changelog.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1+
# Ver.5.20.2 (2026/06/30)
2+
3+
## StarIO
4+
5+
- Support Android 17.
6+
- Updated the `searchPrinter` / `getPort` APIs used for LAN communication to output an appropriate exception message when the `ACCESS_LOCAL_NETWORK` permission is not granted.
7+
8+
## StarIOExtension
9+
10+
- Support Android 17.
11+
12+
## StarIODeviceSetting
13+
14+
- Support Android 17.
15+
16+
## SDK
17+
18+
- Support Android 17.
19+
- Supported for the `ACCESS_LOCAL_NETWORK` permission, which becomes mandatory when targeting `targetSdkVersion 37`.
20+
21+
stario (Ver. 2.14.3)<br>
22+
starioextension (Ver. 1.17.1)<br>
23+
StarIODeviceSetting (Ver. 1.0.5)
24+
125
# Ver.5.20.1 (2026/04/24)
226

327
## StarIO

Documents/CHANGELOG_JP.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1+
# Ver.5.20.2 (2026/06/30)
2+
3+
## StarIO
4+
5+
- Android17に対応
6+
- `ACCESS_LOCAL_NETWORK`権限がないときのLAN通信にて、`searchPrinter` / `getPort` APIが適切な例外メッセージを出力するように変更
7+
8+
## StarIOExtension
9+
10+
- Android17に対応
11+
12+
## StarIODeviceSetting
13+
14+
- Android17に対応
15+
16+
## SDK
17+
18+
- Android17に対応
19+
- `targetSdkVersion 37`で必須化された`ACCESS_LOCAL_NETWORK`権限に対応
20+
21+
stario (Ver. 2.14.3)<br>
22+
starioextension (Ver. 1.17.1)<br>
23+
StarIODeviceSetting (Ver. 1.0.5)
24+
125
# Ver.5.20.1 (2026/04/24)
226

327
## StarIO
@@ -7,7 +31,6 @@ stario (Ver. 2.14.2)<br>
731
starioextension (Ver. 1.17.0)<br>
832
StarIODeviceSetting (Ver. 1.0.4)
933

10-
1134
# Ver 5.20.0 (2025/05/19)
1235

1336
## StarIO

Documents/README_JP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,4 @@ StarIOPort3.1.jar V2.6.0 (StarPRNT SDK V5.11.0)より、releasePortメソッド
4242

4343
## 著作権
4444

45-
スター精密(株)Copyright 2016-2025
45+
スター精密(株)Copyright 2016-2026

Readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,4 @@ Beginning from StarIOPort3.1.jar V2.6.0 (StarPRNT SDK V5.11.0), the releasePort
4242

4343
## Copyright
4444

45-
Copyright 2016-2025 Star Micronics Co., Ltd. All rights reserved.
45+
Copyright 2016-2026 Star Micronics Co., Ltd. All rights reserved.

StarIODeviceSettingSDK/app/build.gradle

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
plugins {
22
id 'com.android.application'
3-
id 'kotlin-android'
43
}
54

65
android {
76
namespace "com.starmicronics.stariodevicesettingsdk"
8-
compileSdk 36
7+
compileSdk = 37
98

109
defaultConfig {
1110
applicationId "com.starmicronics.stariodevicesettingsdk"
1211
minSdkVersion 24
13-
targetSdkVersion 36
12+
targetSdkVersion 37
1413
versionCode 1
15-
versionName "1.0.4"
14+
versionName "1.0.5"
1615

1716
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1817
}
@@ -35,15 +34,12 @@ android {
3534
def coroutines_version = '1.6.4'
3635

3736
dependencies {
38-
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
39-
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
40-
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
4137
implementation 'androidx.core:core-ktx:1.12.0'
4238
implementation 'androidx.appcompat:appcompat:1.7.0'
4339
implementation 'com.google.android.material:material:1.11.0'
4440
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
45-
implementation 'com.starmicronics:stario:2.14.2'
46-
implementation 'com.starmicronics:stariodevicesetting:1.0.4'
41+
implementation 'com.starmicronics:stario:2.14.3'
42+
implementation 'com.starmicronics:stariodevicesetting:1.0.5'
4743
testImplementation 'junit:junit:'
4844
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
4945
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'

StarIODeviceSettingSDK/app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
tools:targetApi="31" />
1414
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
1515

16+
<uses-permission android:name="android.permission.ACCESS_LOCAL_NETWORK"
17+
android:minSdkVersion="37" />
18+
1619
<application
1720
android:allowBackup="true"
1821
android:icon="@mipmap/ic_launcher"

StarIODeviceSettingSDK/app/src/main/java/com/starmicronics/stariodevicesettingsdk/MainActivity.kt

Lines changed: 42 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@ import android.os.Build
77
import android.os.Bundle
88
import android.view.View
99
import android.widget.Toast
10-
import androidx.annotation.RequiresApi
1110
import androidx.appcompat.app.AlertDialog
1211
import androidx.appcompat.app.AppCompatActivity
1312
import androidx.core.view.ViewCompat
14-
import androidx.core.view.WindowCompat
1513
import androidx.core.view.WindowInsetsCompat
1614
import androidx.core.view.updatePadding
1715
import com.starmicronics.stariodevicesetting.StarIODeviceSettingException
@@ -26,7 +24,7 @@ class MainActivity : AppCompatActivity() {
2624
private val scope = CoroutineScope(Dispatchers.Default + job)
2725

2826
companion object {
29-
private const val BLUETOOTH_REQUEST_CODE = 1000
27+
private const val PERMISSIONS_REQUEST_CODE = 1000
3028
}
3129

3230
private lateinit var binding: ActivityMainBinding
@@ -81,12 +79,14 @@ class MainActivity : AppCompatActivity() {
8179
}
8280
}
8381

84-
// If you are using Android 12 and targetSdkVersion is 31 or later,
82+
// If you are using Android 12 or later and targetSdkVersion is 31 or later,
8583
// you have to request Bluetooth permission (Nearby devices permission) to use the Bluetooth printer.
8684
// https://developer.android.com/about/versions/12/features/bluetooth-permissions
87-
if (Build.VERSION_CODES.S <= Build.VERSION.SDK_INT) {
88-
requestBluetoothPermission()
89-
}
85+
86+
// If you are using Android 17 or later and target SdkVersion is 37 or later,
87+
// you have to request ACCESS_LOCAL_NETWORK permission to use the LAN printer.
88+
// https://developer.android.com/privacy-and-security/local-network-permission
89+
requestRuntimePermissions()
9090
}
9191

9292
private suspend fun showResultDialog(message: String?) {
@@ -112,18 +112,29 @@ class MainActivity : AppCompatActivity() {
112112
return versionName
113113
}
114114

115-
@RequiresApi(31)
116-
private fun requestBluetoothPermission() {
117-
if (baseContext.checkSelfPermission(Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_DENIED ||
118-
baseContext.checkSelfPermission(Manifest.permission.BLUETOOTH_SCAN) == PackageManager.PERMISSION_DENIED
119-
) {
120-
requestPermissions(
121-
arrayOf(
122-
Manifest.permission.BLUETOOTH_CONNECT,
123-
Manifest.permission.BLUETOOTH_SCAN
124-
),
125-
BLUETOOTH_REQUEST_CODE
126-
)
115+
private fun requestRuntimePermissions() {
116+
val permissions = mutableListOf<String>()
117+
118+
// Android 12 or later : Bluetooth
119+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
120+
if (applicationContext.checkSelfPermission(Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_DENIED) {
121+
permissions.add(Manifest.permission.BLUETOOTH_CONNECT)
122+
}
123+
124+
if (applicationContext.checkSelfPermission(Manifest.permission.BLUETOOTH_SCAN) == PackageManager.PERMISSION_DENIED) {
125+
permissions.add(Manifest.permission.BLUETOOTH_SCAN)
126+
}
127+
}
128+
129+
// Android 17 or later : LAN
130+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CINNAMON_BUN) {
131+
if (applicationContext.checkSelfPermission(Manifest.permission.ACCESS_LOCAL_NETWORK) == PackageManager.PERMISSION_DENIED) {
132+
permissions.add(Manifest.permission.ACCESS_LOCAL_NETWORK)
133+
}
134+
}
135+
136+
if (permissions.isNotEmpty()) {
137+
requestPermissions(permissions.toTypedArray(), PERMISSIONS_REQUEST_CODE)
127138
}
128139
}
129140

@@ -133,11 +144,18 @@ class MainActivity : AppCompatActivity() {
133144
grantResults: IntArray
134145
) {
135146
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
136-
if (requestCode == BLUETOOTH_REQUEST_CODE) {
137-
if (grantResults.size == 2 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
138-
// Bluetooth permissions are granted.
139-
} else {
140-
val text = "You have to allow \"Nearby devices\" to use the Bluetooth printer"
147+
if (requestCode == PERMISSIONS_REQUEST_CODE) {
148+
var allGranted = true
149+
150+
for (result in grantResults) {
151+
if (result != PackageManager.PERMISSION_GRANTED) {
152+
allGranted = false
153+
break
154+
}
155+
}
156+
157+
if (!allGranted) {
158+
val text = "You have to check permissions to use the LAN / Bluetooth printer"
141159
Toast.makeText(baseContext, text, Toast.LENGTH_LONG).show()
142160
}
143161
}

StarIODeviceSettingSDK/build.gradle

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
22
buildscript {
3-
ext.kotlin_version = "1.7.21"
43
repositories {
54
mavenCentral()
65
google()
76
}
87
dependencies {
9-
classpath 'com.android.tools.build:gradle:8.9.0'
10-
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
8+
classpath 'com.android.tools.build:gradle:9.2.1'
119

1210
// NOTE: Do not place your application dependencies here; they belong
1311
// in the individual module build.gradle files
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#Fri Jan 05 11:32:57 JST 2024
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
4-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
55
zipStoreBase=GRADLE_USER_HOME
66
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)