คำถามติดแท็ก android

Android เป็นระบบปฏิบัติการมือถือของ Google ใช้สำหรับการเขียนโปรแกรมหรือพัฒนาอุปกรณ์ดิจิตอล (สมาร์ทโฟน, แท็บเล็ต, รถยนต์, ทีวี, เครื่องแต่งกาย, แก้ว, IoT) สำหรับหัวข้อที่เกี่ยวข้องกับ Android ให้ใช้แท็กเฉพาะสำหรับ Android เช่น android-intent, android-activity, android-adapter, ฯลฯ สำหรับคำถามนอกเหนือจากการพัฒนาหรือการเขียนโปรแกรม แต่เกี่ยวข้องกับกรอบของ Android ให้ใช้ลิงค์นี้: https: // android.stackexchange.com

9
จะใช้การสนับสนุน FileProvider เพื่อแชร์เนื้อหาไปยังแอพอื่น ๆ ได้อย่างไร?
ฉันกำลังมองหาวิธีการอย่างถูกต้องหุ้น (ไม่เปิด) ไฟล์ภายในกับโปรแกรมภายนอกใช้ห้องสมุดสนับสนุน Android ของFileProvider ทำตามตัวอย่างในเอกสาร <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.example.android.supportv4.my_files" android:grantUriPermissions="true" android:exported="false"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/my_paths" /> </provider> และใช้ ShareCompat เพื่อแชร์ไฟล์ไปยังแอปอื่นดังนี้: ShareCompat.IntentBuilder.from(activity) .setStream(uri) // uri from FileProvider .setType("text/html") .getIntent() .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) ไม่ทำงานเนื่องจาก FLAG_GRANT_READ_URI_PERMISSION จะให้สิทธิ์แก่ Uri ที่ระบุไว้ในdataเจตนาเท่านั้นไม่ใช่มูลค่าของส่วนEXTRA_STREAMเสริม (ตามที่กำหนดโดยsetStream) ผมพยายามที่จะรักษาความปลอดภัยการประนีประนอมโดยการตั้งค่าandroid:exportedไปยังtrueผู้ให้บริการ แต่FileProviderภายในตรวจสอบว่าตัวเองจะถูกส่งออกเมื่อเป็นเช่นนั้นก็พ่นยกเว้น

10
ติดตั้ง / ถอนการติดตั้ง APKs ทางโปรแกรม (PackageManager vs Intents)
แอปพลิเคชันของฉันติดตั้งแอปพลิเคชันอื่นและจำเป็นต้องติดตามแอปพลิเคชันที่ติดตั้งไว้ แน่นอนว่าสามารถทำได้โดยเพียงแค่เก็บรายการแอปพลิเคชั่นที่ติดตั้งไว้ แต่สิ่งนี้ไม่จำเป็น! ควรเป็นความรับผิดชอบของ PackageManager ในการรักษาความสัมพันธ์ที่ติดตั้งโดย (a, b) ในความเป็นจริงตาม API มันคือ: public abstract String getInstallerPackageName (String packageName) - ดึงชื่อแพ็คเกจของแอปพลิเคชั่นที่ติดตั้งแพ็คเกจ สิ่งนี้บ่งชี้ว่าตลาดบรรจุภัณฑ์มาจากไหน แนวทางปัจจุบัน ติดตั้ง APK โดยใช้เจตนา Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(apkUri, "application/vnd.android.package-archive"); startActivity(intent); ถอนการติดตั้ง APK โดยใช้เจตนา: Intent intent = new Intent(Intent.ACTION_DELETE, Uri.fromParts("package", getPackageManager().getPackageArchiveInfo(apkUri.getPath(), 0).packageName,null)); startActivity(intent); เห็นได้ชัดว่านี่ไม่ใช่วิธีการเช่นการติดตั้ง / ถอนการติดตั้งแพคเกจ Android Market พวกเขาใช้ …


16
Lollipop: วาดด้านหลัง StatusBar โดยตั้งค่าสีเป็นโปร่งใส
ฉันได้ตั้งค่าสถานะแถบสีเป็นโปร่งใสสำหรับ Lollipop เฉพาะกับบรรทัดต่อไปนี้ในธีมของฉัน: <item name="android:statusBarColor">@android:color/transparent</item> ตอนนี้ฉันต้องการวาดมัน แต่ฉันไม่สามารถรับมุมมองใด ๆ ที่อยู่เบื้องหลังมัน ฉันรู้ว่าต้องทำอย่างไรกับwindowTranslucentStatusคุณสมบัตินี้ แต่ไม่ต้องการใช้คุณสมบัตินี้เนื่องจากจะไม่สนใจสีของสถานะที่บาร์ตั้งค่าเป็นโปร่งใส

6
Android, ฉันจะแปลงสตริงเป็นวันที่ได้อย่างไร?
ฉันเก็บเวลาปัจจุบันในฐานข้อมูลแต่ละครั้งที่แอปพลิเคชันเริ่มต้นโดยผู้ใช้ Calendar c = Calendar.getInstance(); String str = c.getTime().toString(); Log.i("Current time", str); ในด้านฐานข้อมูลฉันเก็บเวลาปัจจุบันเป็นสตริง (ตามที่คุณเห็นในโค้ดด้านบน) ดังนั้นเมื่อฉันโหลดจากฐานข้อมูลฉันต้องส่งมันไปยังวัตถุวันที่ ฉันเห็นตัวอย่างบางส่วนที่พวกเขาทั้งหมดใช้ "DateFormat" แต่รูปแบบของฉันเหมือนกับรูปแบบวันที่ ดังนั้นฉันคิดว่าไม่จำเป็นต้องใช้ "DateFormat" ฉันถูกไหม? อย่างไรก็ตามมีการโยนวัตถุ String to Date นี้โดยตรงหรือไม่ ฉันต้องการเปรียบเทียบเวลาที่เก็บไว้กับเวลาปัจจุบัน ขอบคุณ ======> อัปเดต ขอบคุณพวกที่รัก ฉันใช้รหัสต่อไปนี้: private boolean isPackageExpired(String date){ boolean isExpired=false; Date expiredDate = stringToDate(date, "EEE MMM d HH:mm:ss zz yyyy"); if (new …
142 android  string  date  casting 


14
วิธีเปิดใช้งาน multidexing ด้วยไลบรารีการสนับสนุน Android Multidex ใหม่
ฉันต้องการใช้ไลบรารีการสนับสนุน Multidex ใหม่เพื่อแบ่งขีด จำกัด วิธีสำหรับหนึ่งในแอพของฉัน ด้วย Android Lollipop Google ได้แนะนำไลบรารีการสนับสนุนแบบหลายหน้าจอที่ทำให้ง่ายในการทวีคูณ จำเป็นต้องใช้ขั้นตอนใดบ้างในการใช้ไลบรารีนี้และสร้างแอปของฉันด้วยการรองรับ multidex

15
Android Emulator: ข้อผิดพลาดในการติดตั้ง: INSTALL_FAILED_VERSION_DOWNGRADE
ฉันกำลังพยายามรวบรวมและทดสอบแอปพลิเคชัน Android ขนาดเล็ก ฉันใช้ Eclipse และติดตั้ง SDK 4.2 (Api ระดับ 17) แล้ว ฉันได้ตั้งค่า <uses-sdk android:targetSdkVersion="17" android:minSdkVersion="8" /> แม้ว่าฉันจะลองด้วยค่าที่แตกต่างกัน (เช่น 17/17) ฉันไม่ได้ใช้ฟังก์ชั่นของ GoogleAPI และฉันจะไม่ใช้ฟังก์ชั่นที่ไม่มีใน API ระดับ 8 หรืออย่างน้อยฉันก็จะไม่ได้รับข้อผิดพลาดในการรวบรวมหรือคำเตือนในเรื่องนั้น เมื่อฉันรวบรวมโครงการและเรียกใช้บนอุปกรณ์จริงที่ใช้ Android 2.2.1 แอปพลิเคชันจะทำงานได้ดี อย่างไรก็ตามเมื่อฉันพยายามเรียกใช้แอพพลิเคชั่นบนอีมูเลเตอร์ (Android Virtual Device) ที่มี Android 4.2, Api ระดับ 17 ฉันได้รับข้อผิดพลาดดังต่อไปนี้: [2012-12-10 21:10:29 - SoftKeyboard] Installation error: INSTALL_FAILED_VERSION_DOWNGRADE [2012-12-10 …
142 java  android  sdk 

4
โหลด Webview html จากไดเรกทอรีสินทรัพย์
ฉันกำลังพยายามโหลดหน้า html จากไดเรกทอรีสินทรัพย์ ฉันลองสิ่งนี้ แต่มันล้มเหลว public class ViewWeb extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView wv; wv = (WebView) findViewById(R.id.webView1); wv.loadUrl("file:///android_asset/aboutcertified.html"); // fails here setContentView(R.layout.webview); } } ฉันไม่ได้รับแจ้งข้อผิดพลาดใด ๆ ใน LogCat ...
142 android 

14
เพิ่มวัตถุไปยัง ArrayList ที่ดัชนีที่ระบุ
ฉันคิดว่ามันเป็นคำถามที่ค่อนข้างง่าย แต่ฉันไม่สามารถหาวิธีที่จะทำอย่างถูกต้อง ฉันมี arraylist ที่ว่างเปล่า: ArrayList<object> list = new ArrayList<object>(); ฉันมีบางอย่างที่ฉันต้องการเพิ่มและแต่ละวัตถุจะต้องอยู่ในตำแหน่งที่แน่นอน มีความจำเป็น แต่สามารถเพิ่มได้ในแต่ละคำสั่งที่เป็นไปได้ เมื่อฉันลองทำสิ่งนี้มันใช้ไม่ได้และฉันได้รับIndexOutOfBoundsException: list.add(1, object1) list.add(3, object3) list.add(2, object2) สิ่งที่ฉันได้ลองทำคือเติมArrayListด้วยnullแล้วทำตามข้างบน มันใช้งานได้ แต่ฉันคิดว่ามันเป็นทางออกที่น่ากลัว มีวิธีอื่นในการทำเช่นนี้หรือไม่?
142 java  android  arraylist 

10
สีของแท็บที่เลือกในมุมมองการนำทางด้านล่าง
ฉันกำลังเพิ่มBottomNavigationViewโครงการและอยากมีสีข้อความ (และสีอ่อนไอคอน) ที่แตกต่างกันสำหรับแท็บที่เลือก (เพื่อให้ได้ผลสีเทาแท็บที่ไม่ได้เลือก) การใช้สีที่แตกต่างกับandroid:state_selected="true"ในไฟล์ทรัพยากรตัวเลือกสีดูเหมือนจะไม่ทำงาน ฉันยังพยายามมีรายการเพิ่มเติมด้วยandroid:state_focused="true"หรือandroid:state_enabled="true"น่าเสียดายที่ไม่มีผล ลองตั้งค่าstate_selectedแอตทริบิวต์เป็น false (อย่างชัดเจน) สำหรับสีเริ่มต้น (ไม่ได้เลือก) โดยไม่มีโชค นี่คือวิธีเพิ่มมุมมองไปยังเค้าโครงของฉัน: <android.support.design.widget.BottomNavigationView android:id="@+id/bottom_navigation" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" app:itemBackground="@color/silver" app:itemIconTint="@color/bnv_tab_item_foreground" app:itemTextColor="@color/bnv_tab_item_foreground" app:menu="@menu/bottom_nav_bar_menu" /> นี่คือตัวเลือกสีของฉัน ( bnv_tab_item_foreground.xml): <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@android:color/darker_gray" /> <item android:state_selected="true" android:color="@android:color/holo_blue_dark" /> </selector> และทรัพยากรเมนูของฉัน ( bottom_nav_bar_menu.xml): <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_home" android:icon="@drawable/ic_local_taxi_black_24dp" …

12
วิธีการเพิ่ม Stacktrace หรือ Debug Option เมื่อสร้าง Android Studio Project
ฉันพยายามตรวจสอบข้อผิดพลาดในการสร้างโปรเจ็กต์ในเอาต์พุตคอนโซลดังต่อไปนี้: :myapp:processDebugResources FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:processDebugResources'. ... ... * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. ฉันสงสัยว่ามันมีบางอย่างที่เกี่ยวข้องกับทรัพยากรที่ไม่พบข้อผิดพลาด คำถามของฉันคือที่ระดับ IDE ฉันจะเพิ่ม--stacktraceหรือ--debugตัวเลือกเพื่อให้สามารถผลิตข้อมูลเพิ่มเติมสำหรับฉันที่จะแก้ปัญหา?

10
วิธีเปลี่ยนชื่อแอปตามประเภทการสร้าง Gradle
ฉันกำลังพยายามหาวิธีที่จะสามารถเปลี่ยนชื่อแอปพลิเคชันของฉันต่อประเภทการสร้างใน gradle ยกตัวอย่างเช่นผมอยากรุ่นการแก้ปัญหาที่จะมี<APP_NAME>-debugและรุ่น QA <APP-NAME>-QAที่จะมี ฉันคุ้นเคยกับ: debug { applicationIdSuffix '.debug' versionNameSuffix '-DEBUG' } อย่างไรก็ตามฉันไม่พบคำสั่ง gradle เพื่อใช้การเปลี่ยนแปลงของแอปเมื่ออยู่ในตัวเรียกใช้งาน

8
ความแตกต่างระหว่าง app: srcCompat และ android: src ใน XML เค้าโครงของ Android
เมื่อใดก็ตามที่ฉันสร้าง ImageView พร้อมไอคอนที่เพิ่มโดยใช้ Vector Assets ของ Android Studio ฉันได้รับข้อผิดพลาดที่บรรทัด app:srcCompat="@drawable/ic_play" เมื่อฉันเปลี่ยนapp:srcCompatด้วยandroid:srcข้อผิดพลาดจะหายไป แต่ไอคอนดูเป็นพิกเซล อะไรคือความแตกต่างที่สำคัญระหว่าง app:srcCompat="@drawable/ic_play" และ android:src="@drawable/ic_play"

16
ข้อผิดพลาดไอคอนสตูดิโอ Android Gradle, การรวมกิจการ
ฉันเห็นข้อความนี้ต่อไปและไม่แน่ใจว่าจะแก้ไขได้อย่างไร Error:(43, 9) Attribute application@icon value=(@drawable/new_app_icon) from AndroidManifest.xml:43:9 is also present at com.github.erizet.signala:signala-longpolling:0.20:7:18 value=(@drawable/ic_launcher) Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:40:5 to override :OpenBook:processDebugManifest FAILED Error:Execution failed for task ':OpenBook:processDebugManifest'. > Manifest merger failed with multiple errors, see logs พยายามเพิ่มandroid:replace="android:icon"ในรายการของฉันแม้จะมีไอคอน ฉันพยายามลบ android:icon="@drawable/ic_launcherจากห้องสมุด แต่มันกลับมาเมื่อฉันสร้างเพราะมันนำเข้าจาก Maven ความคิดใด ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.