Replies from geekgok
วันนั้นว่าจะตอบไปอยู่ แต่เหมือนบอร์ดมันมี spam ก็เลยหากระทู้ไม่เจอครับ -*-
ตอนผมเขียนโปรแกรมผมก็เคยอยากหาที่อยู่ของ Database ใน app ที่เรา install ไว้ในเครื่อง
แต่เท่าที่ผมลองหาใน Google ดู ยังไม่มีผู้ใดสามารถตอบคำถามนี้ได้เลยครับ
เคยหาเจออยู่ที่หนึ่ง เขาบอกว่า มันเป็นการมาตรการของ android ในการปกป้องข้อมูลของ application ต่างๆที่ลงเอาไว้ในเครื่อง เพราะเขาเกรงว่า ถ้าเราสามารถเข้าถึง database ในแต่ละ app ที่ลงในเครื่องได้ application นั้นจะไม่ปลอดภัยครับ
แต่เขาก็ไม่ได้ถึงเรื่องว่า Developer จะทดสอบอย่างไร คงคิดว่าไปดูใน emulator ได้ก็น่าจะเพียงพอแล้วครับ
ลองค้นหาแล้วพบวิธีแก้ตามนี้ครับ
If you have previous apk file with you(backup) then use jarSigner to extract certificate from that that apk, then use that key or use keytool to clone that certificate, may be that will help… Helpful links are http://download.oracle.com/javase/1.3/docs/tooldocs/win32/jarsigner.html and http://download.oracle.com/javase/1.3/docs/tooldocs/win32/keytool.html
เห็นหลายคนตั้งคำถามแบบนี้ไว้เยอะ
ผมก็เลยพยายามลองเขียน tutorial ขึ้นมาครับ ก็เพิ่งเริ่มเขียน แล้วจะพยายามอัพเดตบ่อยๆครับ
http://www.geekgok.com
ทำใจได้อย่างเดียวครับ เพราะถ้ายังจำ hashkey ใน keystore ได้ ก็ยังจะพอหาทางได้
แต่ถ้าลบไปแล้ว ก็ต้องอัพเป็นอันใหม่เลยครับ
แนะนำให้อัพเป็น v2 ไป user เดิมน่าจะมาดาวน์โหลดใหม่แหละครับ
แนะนำนะครับ
อยากให้ลองดู error จาก logcat น่ะครับ ว่าขึ้น error อะไร
หรือจะเอา code ที่เขียนมาอธิบายก็ได้ครับ
ถ้าสามารถยก code และ error ที่แสดงใน logcat มาได้ทั้งคู่ จะดีมากครับ
เพราะจะทำให้ Debug และหา error ได้ง่ายมากขึ้นครับ
ตอนแรกผมเข้าใจว่าต้องการเขียนโปรแกรมบนฝั่ง Server ให้ไปสั่งงานยังเครื่อง android ใดๆที่ติดตั้งโปรแกรมของคุณอยู่
ถ้าเป็นแบบนี้ก็เหมือนกับการเรียกข้อมูลจาก Webservices ธรรมดาครับ
พอได้ข้อมูลที่ Webservices ส่งมาให้แล้ว ก็รับค่าไปทำงานต่อบนเครื่อง
อันนี้ที่ผมเคยตอบ เขาต้องการรับข้อมูลเป็น Json แล้วมาลงใน listview
ลองดูแล้วไปประยุกต์ก็ได้ครับ คล้ายๆกัน
http://droidsans.com/node/28303
เท่าที่ผมรู้นะครับ คิดว่าไม่สามารถทำได้ครับ
แต่สามารถทำกลับกันได้ครับ คือ ให้ android เรียก Services ที่เขียนโดย PHP ให้รับค่าคำว่า Droidsans ครับ
ผมเดาว่าระบบของ android คงไม่เปิดช่องให้มีการส่ง Data ผ่านทาง Internet โดยการ force data จาก เว็บเข้าไปได้ครับ
ไม่อย่างนั้นอาจจะถูกยิงได้ง่ายๆ
แต่เราสามารถที่จะส่ง data เข้าไปยังเครื่อง android ได้ โดยผ่านทางช่องทางอื่นเช่น Bluetooth, USB เป็นต้นครับ ซึ่งทั้งนี้ฝั่งมือถือเองก็ต้องเปิดช่องทางเหล่านี้ให้ข้อมูลส่งไปได้เช่นกัน
อันนี้เป็นตัวอย่างหนึ่งครับ http://socialtimes.com/get-an-oscilloscope-to-send-data-to-an-android-phone_b48419
ให้ผมเดานะครับ น่าจะเป็นที่ key ของ map api ไม่ถูกต้องนะครับ
ไม่รู้ว่าคุณได้เอา keystore ไป signup เพื่อเอา Key ของ map มาใส่หรือยังครับ
คิดว่าน่าจะใช้เทคนิค OnPause() กับ OnResume() จะดีกว่าครับ
เพราะถ้าเราเรียก Intent ขึ้นมาใหม่ มันคือการสร้าง page ขึ้นมาใหม่ทันที แล้วจะมีปัญหากับการกด back ด้วย
(ผมขอเรียก Activity ในแต่ละอันว่า page ละกันครับ จะได้ตรงกับที่คุณ cyberplanet เข้าใจ)
จังหวะที่เราเปลี่ยนหน้าจาก 1 ไป 2 Page ที่ 1 จะถูก Pause ไว้ แล้วไปเรียก Page ที่ 2 ให้ทำงาน
เมื่อเราทำการแก้ไขค่าในหน้า 2 เพื่อให้ program ทั้งหมดมีสีของปุ่มเปลี่ยนไป แล้วเราก็ย้อนกลับไปที่หน้า 1
จังหวะนั้น Page 1 จะไม่ถูกเรียกฟังก์ชัน OnCreated ครับ แต่จะเรียก OnResume แทน
ถ้าต้องการจะทำอะไรก็ใส่ตรงฟังก์ชัน OnResume ละกันครับ
จะใช้ SharedPreferences เป็นตัวช่วยในการเก็บค่าด้วยก็ได้ครับ
ผมว่าลองทำความเข้าใจ android ดูก่อนดีกว่าครับ
แล้วถ้ามีอะไรสงสัยก็สามารถ สอบถามได้ เพราะว่าคำถามกว้างไป ผมก็ไม่รู้ว่าจะตอบยังไงเหมือนกัน
ตามลิงค์นี้เลยครับ ลองดูเป็นไอเดีย
http://www.javacodegeeks.com/2011/07/android-game-development-moving-images.html
ผมแนะนำให้โหลด Eclipse ตัวใหม่จากเว็บตรงเลยครับ (ตอนนี้น่าจะเป็นรุ่น indingo)
ส่วน ADK ก็ไม่จำเป็นต้องโหลดตัวใหม่สุดก็ได้ครับ เพราะถ้าเราใช้ ADK ตัวใหม่สุด
โปรแกรมของเราก็จะรองรับเครื่องที่มี android Version ล่าสุดเท่านั้น
ส่วนเครื่องที่เป็น Version เก่าๆ ก็จะเล่น app ของเราไม่ได้ครับ
เอาวิธีลงไปก่อนละกันครับ
http://www.codemobiles.com/forum/viewtopic.php?p=6631
แล้วแต่ใจคุณเลยครับ
แต่เป็นผม ผมเลือกมือถือครับ ^ ^