diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4f15509..a785cf2 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
+ xmlns:tools="http://schemas.android.com/tools">
@@ -8,52 +8,65 @@
-
-
-
-
-
+ tools:targetApi="31">
+ android:theme="@style/Theme.AICEmu">
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ android:permission="android.permission.BIND_NFC_SERVICE">
@@ -61,6 +74,5 @@
android:name="android.nfc.cardemulation.host_nfcf_service"
android:resource="@xml/host_nfcf_service" />
-
\ No newline at end of file
diff --git a/app/src/main/java/moe/tqlwsl/aicemu/ApduService.kt b/app/src/main/java/moe/tqlwsl/aicemu/ApduService.kt
new file mode 100644
index 0000000..0809bd1
--- /dev/null
+++ b/app/src/main/java/moe/tqlwsl/aicemu/ApduService.kt
@@ -0,0 +1,16 @@
+package moe.tqlwsl.aicemu
+
+import android.nfc.cardemulation.HostApduService
+import android.os.Bundle
+
+
+class ApduService : HostApduService() {
+ override fun onDeactivated(reason: Int) {
+ // placeholder
+ }
+
+ override fun processCommandApdu(commandApdu: ByteArray, extras: Bundle): ByteArray {
+ // placeholder
+ return ByteArray(0)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/moe/tqlwsl/aicemu/MainActivity.kt b/app/src/main/java/moe/tqlwsl/aicemu/MainActivity.kt
index db4709d..aa7f923 100644
--- a/app/src/main/java/moe/tqlwsl/aicemu/MainActivity.kt
+++ b/app/src/main/java/moe/tqlwsl/aicemu/MainActivity.kt
@@ -4,6 +4,7 @@ import android.app.AlertDialog
import android.app.PendingIntent
import android.content.*
import android.nfc.NfcAdapter
+import android.nfc.cardemulation.CardEmulation
import android.nfc.cardemulation.NfcFCardEmulation
import android.os.Bundle
import android.util.Log
@@ -12,16 +13,14 @@ import android.widget.*
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.cardview.widget.CardView
-import androidx.core.content.edit
import androidx.core.view.WindowCompat
import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.google.gson.Gson
import com.google.gson.JsonSyntaxException
import com.google.gson.reflect.TypeToken
+import moe.tqlwsl.aicemu.databinding.ActivityMainBinding
import java.io.File
import java.io.IOException
-import moe.tqlwsl.aicemu.databinding.ActivityMainBinding
-
internal data class Card(val name: String, val idm: String)
@@ -83,6 +82,18 @@ class MainActivity : AppCompatActivity() {
return
}
+ // set default payment app
+ var cardEmulation = CardEmulation.getInstance(nfcAdapter)
+ val componentName = ComponentName(applicationContext, ApduService::class.java)
+ val isDefault =
+ cardEmulation.isDefaultServiceForCategory(componentName, CardEmulation.CATEGORY_PAYMENT)
+ if (!isDefault) {
+ val intent = Intent(CardEmulation.ACTION_CHANGE_DEFAULT)
+ intent.putExtra(CardEmulation.EXTRA_CATEGORY, CardEmulation.CATEGORY_PAYMENT)
+ intent.putExtra(CardEmulation.EXTRA_SERVICE_COMPONENT, componentName)
+ startActivity(intent)
+ }
+
// add pendingintent in order not to read tag at home
val intent = Intent(this, javaClass).apply {
addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
@@ -98,7 +109,7 @@ class MainActivity : AppCompatActivity() {
)
// setting prefs
- prefs = applicationContext.getSharedPreferences("AICEmu", MODE_PRIVATE)
+ prefs = applicationContext.getSharedPreferences("AICEmu", Context.MODE_WORLD_READABLE)
currentCardId = prefs.getInt("currentCardId", -1)
compatibleID = prefs.getBoolean("compatibleID", false)
val compatibleButton: Button = findViewById(R.id.button_compatible)
@@ -176,7 +187,7 @@ class MainActivity : AppCompatActivity() {
true
}
R.id.toolbar_menu_settings -> {
- Toast.makeText(applicationContext, "还没做完()\nUnder constuction...", Toast.LENGTH_LONG).show()
+ // Toast.makeText(applicationContext, "还没做完()\nUnder constuction...", Toast.LENGTH_LONG).show()
val settingIntent = Intent(this, SettingActivity::class.java)
startActivity(settingIntent)
true
diff --git a/app/src/main/res/xml/apdu_service.xml b/app/src/main/res/xml/apdu_service.xml
new file mode 100644
index 0000000..9d682b4
--- /dev/null
+++ b/app/src/main/res/xml/apdu_service.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
\ No newline at end of file