【发布时间】:2021-05-31 09:15:12
【问题描述】:
当我尝试在 AWS Pinpoint 中创建将在 OnClickListerner 上触发的事件时,我正尝试在我的项目中实施 AWS Pinpoint 以进行移动分析。以下是代码sn-p。每当我尝试在 OnClickListener 中创建事件时,该特定事件无法识别,请帮助我了解它是如何完成的。
inviteButton.setOnClickListener {
val tinyDb = TinyDB(App.ctx)
val userDetails = tinyDb.getCurrentUserCachedDetails()
val userAttributesMap = userDetails.attributes.attributes
val username =
userAttributesMap[SettingsFragment.KEY_FIRST_NAME] + " " + userAttributesMap[SettingsFragment.KEY_LAST_NAME]
val project = ProjectRepository(ProjectDao()).getProjectById(projectCode)
val bitmap =
BitmapFactory.decodeResource(resources, R.drawable.project_invite)
val mutableBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true)
val canvas = Canvas(mutableBitmap)
val scale = resources.displayMetrics.density
val paint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
color = Color.BLACK
textSize = 100 * scale
}
canvas.drawText(
projectCode.toString(),
400.toFloat() * scale,
440.toFloat() * scale,
paint
)
val originalFile = File(App.ctx.externalMediaDirs[0], "project_invite.png")
originalFile.createNewFile()
val originalFileBos = ByteArrayOutputStream()
mutableBitmap.compress(Bitmap.CompressFormat.PNG, 0, originalFileBos)
val originalFileByteArray = originalFileBos.toByteArray()
val originalFileFos = FileOutputStream(originalFile)
originalFileFos.write(originalFileByteArray)
originalFileFos.flush()
originalFileFos.close()
val defaultSmsApp = Telephony.Sms.getDefaultSmsPackage(App.ctx)
val intent = Intent(Intent.ACTION_SEND)
intent.putExtra(
Intent.EXTRA_STREAM,
FileProvider.getUriForFile(
App.ctx,
"${App.ctx.packageName}.fileprovider",
originalFile
)
)
intent.putExtra(Intent.EXTRA_TEXT, message)
intent.putExtra("sms_body", message)
intent.type = "image/png"
defaultSmsApp?.let {
intent.`package` = it
try {
activity?.startActivity(intent)
} catch (e: ActivityNotFoundException) {
e { e }
toastError("Unable to open SMS app.")
}
} ?: toastError("No default SMS app found.")
val Email = tinyDb.getString(getString(R.string.logged_in_user))
val event = AnalyticsEvent.builder()
.name("invites")
.addProperty("email", Email)
.build()
log { "Invite event"+ event }
Amplify.Analytics.recordEvent(event)
log { "Invite here 11"+ Amplify.Analytics.recordEvent(event) }
}
【问题讨论】:
-
你能解释一下你所说的“那个特定事件未被识别”是什么意思吗?您是否看到了特定的错误?哪一行代码没有按预期工作?您能否通过 logcat 输出确认单击按钮时调用了
Amplify.Analytics.recordEvent(...)?
标签: android kotlin aws-amplify mobile-development aws-pinpoint