發表文章

目前顯示的是 5月, 2021的文章

Android App 內構程式(三)

 完整程式碼: buy.java: public class Buy extends AppCompatActivity implements PurchasesUpdatedListener { private BillingClient billingClient ; public static final String PREF_FILE = "MyPref" ; public static final String PURCHASE_KEY = "my bkey" ; public static final String PRODUCT_ID = "my product" ; TextView purchaseStatus ; Button purchaseButton , back ; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout. activity_buy ); billingClient = BillingClient. newBuilder ( this ) .enablePendingPurchases().setListener( this ).build(); purchaseStatus =(TextView) findViewById(R.id. purchase_status ); purchaseButton =(Button) findViewById(R.id. purchase_button ); back =(Button) findViewById(R.id. back ); back .setOnClickListener( backbtn ); billingClient = BillingClient. newBuilder ( this ...

Android App 內構程式(二)

圖片
第二篇了,我們先設定內部測試和測試帳號,這樣子你測試才不用拿真的信用卡,很重要!! 接著,要開始APP的部分: 首先,在build.gradle加上這行 implementation 'com.android.billingclient:billing:3.0.1' 在 AndroidManifest.xml 加入: < uses-permission android :name ="com.android.vending.BILLING" /> 先上XML: < LinearLayout android :layout_width ="match_parent" android :layout_height ="match_parent" android :orientation ="vertical" > < TextView android :id ="@+id/purchase_status" android :layout_width ="match_parent" android :layout_height ="wrap_content" android :text ="buy "/> < Button android :id ="@+id/purchase_button" android :layout_width =" wrap_content" android :layout_height ="wrap_content" android :text =" 我要購買 " android :onClick ="purchase...