【三井住友カード(NL)】決済方法 「クレジットカード現物」vs「iD」vs「VISAタッチ」どれが得なのか。【ApplePay / GooglePay】

2022年3月1日から GooglePay でも VISAタッチ 決済が可能になりました。

Android端末でも iPhone ApplePay と同じようにクレジットカード現物なしに決済ができるようになってます。

これまでは、GooglePay は「iD」経由のタッチ決済しかありませんでした。


しかし、これからは、クレジットカード直にVISAでタッチ決済できます。

ポイント5%です。

Visaの Google Pay™ 対応記念!最大1,000円分プレゼントキャンペーン|クレジットカードの三井住友VISAカード
👉 Visaの Google Pay™ 対応記念!最大1,000円分プレゼントキャンペーン|クレジットカードの三井住友VISAカード 
👉 Google Pay™ (グーグルペイ)の使い方徹底解説!設定方法や利用可能店舗も紹介 | 【ヒトトキ】三井住友カード 

決済方法の選択肢が多くなってますが、ポイント5%は、今や「タッチ決済」のみです。

いつもの利用でポイント最大5%還元!|クレジットカードの三井住友VISAカード
👉 いつもの利用でポイント最大5%還元!|クレジットカードの三井住友VISAカード 

ポイント 5% をゲットするには、以下2つののどちらかとなります。

「カード現物」を「タッチ」する。

「iPhone/Android 端末(ApplePay/GooglePay)」を「VISAタッチ決済」として「タッチ」する。

ポイント「5%」のつもりが「2.5%」のありがちな失敗

気をつけなければいけないパターンがあります。

以下では、ポイント2.5%となってしまいます。

「カード現物」を店員に渡したらタッチせずに「スライド(磁気ストライプ決済)」や「差し込み(ICチップ決済)」される。

ICチップ取引:
クレジットカードを決済機に挿入後、すこし時間経過後に4桁の暗証番号を押して承認されるのを待つ

磁気ストライプ取引:
店員にカードを渡すか、手元の決済機にカードをスライドさせることでカードを認識させ、すこし時間経過後にレシートやタブレット端末にサインを入力する

👉 あまりにもVisaのタッチ決済の認知度が低くて、店員とまぁまぁトラブルになる件!利用前に怒られることもあれば、使って怒られることも。 - クレジットカードの読みもの 

「iPhone/Android (ApplePay/GooglePay)」を「iD」経由で「タッチ」してしまう。

コンビニレジでは、「クレジットカード」を選んでからカードやスマホ端末を「タッチ」します。
セブンレジ あまりにもVisaのタッチ決済の認知度が低く

イオンなどのスーパーのレジでも同様です。

イオン レジ あまりにもVisaのタッチ決済の認知度が低く

注意するのは、レジにたってる「店員の操作」と「iD選択ボタン(を押さないこと)」です。

ゲットしたポイントは、私は、月ごとの支払金額から、1ポイント1円 でキャッシュバックとして相殺してもらってますがギフト券とか他にも変換方法はあるようです。

👉 キャンペーン・ポイント|クレジットカードの三井住友VISAカード 


「元の画質のまま無料で保存できる期限が切れました。」とは?

こんなのきましたけど。

Pixel Photo Strage Expire

なんなのか?

2022 年 1 月 31 日までは、無料で、Pixel 3 から Google フォトの無制限ストレージに写真と動画を元の画質でバックアップできます。この日付以前にバックアップした写真と動画は以降も無料で元の画質のまま保存されます。ただし、2022 年 1 月 31 日を過ぎると、新しい写真と動画は無料で「保存容量の節約画質」(旧名称は「高画質」)でバックアップされ、元の画質でバックアップすると、Google アカウントの保存容量にカウントされるようになります。

元々、容量制限の無料サービスのひとつがなくなったようです。

アップロードサイズの種類

Google フォトでは、画像や動画アップロードのサイズとして以下の種類を設定できます。

- 「保存容量の節約」(旧称「高画質」)
- 「元の画質」
- 「エクスプレス」

※ 「エクスプレス」ての海外だけかな? 見たことがない。

まとめ

「機種」と設定「アップロードサイズ」でストレージ使用条件が変わる、と。

以下の機種でアップロードサイズを「保存容量の節約画質」にしておくと、写真動画は無制限に保存できる。(ストレージ使用分にカウントされない。)

- Pixel 3a ~ Pixel 5
- Pixel 3
- Pixel 2

以下の機種は、無制限 (「元の画質」のみ)。

- Pixel(2016)

なお、期限は未定。

ちなみに、以下の機種は無制限とかなし。普通に容量はカウントされる。

- Pixel 5a (5G)
- Pixel 6

しかし、どこのどのサービスも、だんだん厳しくしてくるよねー。

👉 写真や動画のアップロード サイズを選択する - Android - Google フォト ヘルプ 
👉 ストレージの管理 - Google フォト 
👉 Pixel 6|6 Pro、Googleフォトの無制限ストレージ特典対象外に 


SparseArray error: Call requires API level S : SparseArray.set()【Kotlin】

こんなの出ましたけど。

SparseArray error: Call requires API level S : SparseArray.set()

どうしましょう。

また、アノテーションつけて、SDKバージョンによる分岐ですか?

内容

API level 1 からある SparseArray ですが、set メソッドが API level 31 (Android 12/S) で追加されています。

Alias for put(int, java.lang.Object) to support Kotlin [index]= operator.

👉 SparseArray  |  Android Developers 

set was added in Android 12 and is just a copy of the put function, which you can freely use instead.

setはAndroid12で追加されたもので、関数の単なるコピーであり、put代わりに自由に使用できます。

The reason they copied the function with a different name is so array access syntax can work in Kotlin. When the Kotlin compiler sees a function in a Java class with the name set and two parameters, it allows it to be called using array syntax like this:

配列アクセスがKotlinで機能できるようにするためです。Kotlinコンパイラが名前setと2つのパラメータを持つJavaクラスの関数を検出すると、次のような配列構文を使用して関数を呼び出すことができます。


mySparseArray.put(3, someObject)

// is the same as
mySparseArray[3] = someObject

But since they only added it in Android 12, it is not practical to use the new function if you are targeting anything less than Android 12 (sdk version 31), so it will take a few years to become useful.

ただし、Android 12でのみ追加されているため、Android 12(sdkバージョン31)未満をターゲットにしている場合は、新しい機能を使用するのは実用的ではありません。そのため、使用できるようになるまでに数年かかります。

In my opinion, it was a mistake to add this function to the base class, because now it is impossible to use array access syntax for a few years until it finally becomes sensible to make SDK 31 the minSdkVersion. Before they added it, it was possible to use an extension function to have this functionality, but now an extension function cannot be used because its name would shadow the one in the base class. Also, lint doesn't show an error for the array access syntax, so it will crash at runtime if you use it. They should have put this in as an extension function in androidx-core-ktx.

私の意見では、この関数を基本クラスに追加するのは間違いでした。SDK31を最終的に実用化するまで、数年間は配列アクセス構文を使用できなくなったためminSdkVersionです。追加する前は、拡張関数を使用してこの機能を使用することは可能でしたが、その名前が基本クラスの拡張関数をシャドウするため、拡張関数を使用できなくなりました。また、lintは配列アクセス構文のエラーを表示しないため、使用すると実行時にクラッシュします。彼らはこれを拡張関数として androidx-core-ktx に入れるべきでした。

Edit: Looks like maybe this is fixed in an upcoming version, if I'm understanding "backport" correctly.

編集:「バックポート」を正しく理解していれば、これは今後のバージョンで修正される可能性があります。

👉 android - SparseArray error: Call requires API level S - Stack Overflow 

The core-ktx library defines extension functionSparseArray.set(). This method does not exist in the Android SDK until S, the currently in-development version. Many apps use this extension function and compile against pre-S SDKs, meaning it resolves to the library function. Such apps will run fine on earlier platform versions as well as S.

core-ktxライブラリでは、拡張関数として SparseArray.set() が定義されています。このメソッドは、Android S までのAndroid SDKには存在しません。多くのアプリはこの拡張関数を使用し、S以前のSDKに対してコンパイルしています。つまり、ライブラリの関数に解決されます。そのようなアプリは、Sだけでなく、それ以前のプラットフォームのバージョンでも問題なく実行されます。

When these apps are updated to compile against S, the Kotlin compiler will resolve calls to the S SDK function which only exists on devices running the S platform; however, these apps are expected to run against earlier platform versions. They will crash when run against pre-S platforms since the method does not exist.

これらのアプリを Android S に対してコンパイルするように更新すると、Kotlin コンパイラーは、S プラットフォームを実行しているデバイスにのみ存在する S SDK 関数の呼び出しを解決しますが、これらのアプリは以前のプラットフォームのバージョンに対して実行されます。S以前のプラットフォームで実行すると、このメソッドが存在しないためクラッシュします。

As far as I can tell, there is nothing that either app developers or the core-ktx library can do about this situation. The library cannot remove the function without breaking binary compatibility with dependent libraries and regressing functionality. The app developer cannot explicitly force Kotlin to call the extension function on earlier platforms, either in their app code or dependent libraries.

私の知る限り、アプリ開発者にもcore-ktxライブラリにも、この状況に対してできることは何もないようです。ライブラリは、依存ライブラリとのバイナリ互換性を破壊し、機能を後退させることなく、この関数を削除することができません。アプリ開発者は、アプリのコードや依存ライブラリで、以前のプラットフォームで拡張関数を呼び出すように明示的にKotlinに強制することはできません。

Extension function resolution policy of "member always wins" is problematic for Android SDKs

Android SDKでは「メンバーが常に勝つ」という拡張関数解決ポリシーが問題視されている

👉 Extension function resolution policy of "member always wins" is problematic for Android SDKs : KT-45968 

SparseArray.set was added as an alias for SparseArray.put in Android S.
Consider backporting that by rewriting SparseArray.set to SparseArray.put.

SparseArray.set はSparseArray.put のエイリアスとして Android S に追加されました。
SparseArray.setをSparseArray.put に書き換えてバックポートすることを検討するべし。

👉 Backport SparseArray.set [185547135] - Visible to Public - Issue Tracker 

対処方法

put(Int, Object) の形式に戻して修正されたバージョンのSDKを待つ。


mySparseArray[3] = someObject

  ↓

mySparseArray.put(3, someObject)