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

BroadcastReceiver เป็นส่วนประกอบของ Android ที่ตอบสนองต่อการประกาศการออกอากาศทั้งระบบ

11
วิธีใช้ LocalBroadcastManager
วิธีการใช้งาน / หาLocalBroadcastManagerตามที่อธิบายไว้ในเอกสาร Googleและบริการออกอากาศ doc ? ฉันลอง google แล้ว แต่ไม่มีรหัสให้เริ่มด้วย? เอกสารบอกว่าฉันควรใช้มันหากฉันต้องการออกอากาศภายในกระบวนการแอพของฉัน แต่ฉันไม่รู้ว่าจะหาได้จากที่ไหน ความช่วยเหลือ / ความคิดเห็นใด ๆ อัปเดต : ฉันรู้วิธีใช้การออกอากาศ แต่ไม่ทราบวิธีการให้LocalBroadcastManagerบริการในโครงการของฉัน

16
กำลังพยายามเริ่มบริการเมื่อบู๊ตบน Android
ฉันพยายามเริ่มบริการเมื่ออุปกรณ์บู๊ตกับ android แต่ฉันไม่สามารถใช้งานได้ ฉันดูที่ลิงค์ออนไลน์จำนวนหนึ่ง แต่ไม่มีรหัสใดทำงาน ฉันลืมอะไรไปหรือเปล่า AndroidManifest.xml <receiver android:name=".StartServiceAtBootReceiver" android:enabled="true" android:exported="false" android:label="StartServiceAtBootReceiver" > <intent-filter> <action android:name="android.intent.action._BOOT_COMPLETED" /> </intent-filter> </receiver> <service android:name="com.test.RunService" android:enabled="true" /> BroadcastReceiver public void onReceive(Context context, Intent intent) { if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) { Intent serviceLauncher = new Intent(context, RunService.class); context.startService(serviceLauncher); Log.v("TEST", "Service loaded at start"); } }

6
รับบริบทในบริการ
มีวิธีที่เชื่อถือได้ในการได้รับContextจากService? ฉันต้องการที่จะลงทะเบียนรับออกอากาศACTION_PHONE_STATE_CHANGEDแต่ฉันไม่จำเป็นต้อง app Manifestของฉันเสมอได้รับข้อมูลนี้ดังนั้นฉันไม่ได้ใส่ไว้ใน แต่ผมไม่สามารถมีตัวรับสัญญาณการออกอากาศจะถูกฆ่าโดย GC Serviceเมื่อฉันต้องใช้ข้อมูลนี้ดังนั้นฉันลงทะเบียนรับการออกอากาศใน ดังนั้นฉันต้องการที่จะต่อการเรียกร้องContext registerReceiver()เมื่อฉันไม่ต้องการACTION_PHONE_STATE_CHANGEDฉันจะยกเลิกการลงทะเบียน เคล็ดลับใด ๆ

18
จะตรวจสอบว่าผู้รับมีการลงทะเบียนใน Android ได้อย่างไร?
ฉันต้องตรวจสอบว่าผู้รับที่ลงทะเบียนของฉันยังคงลงทะเบียนอยู่หรือไม่ถ้าฉันจะตรวจสอบวิธีการใด ๆ ได้บ้าง?

7
ฉันจะเริ่มแอพเมื่อเริ่มต้นได้อย่างไร
ฉันลองใช้โค้ดตัวอย่างในลิงค์นี้แต่ดูเหมือนว่าล้าสมัยและไม่ได้ผล ดังนั้นฉันต้องทำการเปลี่ยนแปลงอะไรและไฟล์ใดที่แอพของฉันจะเริ่มต้นโดยอัตโนมัติเมื่อ Android บูตเครื่องเสร็จ?

21
ตัวรับสัญญาณออกอากาศสำหรับตรวจสอบการเชื่อมต่ออินเทอร์เน็ตในแอพ Android
ฉันกำลังพัฒนาตัวรับสัญญาณออกอากาศ android สำหรับตรวจสอบการเชื่อมต่ออินเทอร์เน็ต ปัญหาคือตัวรับสัญญาณออกอากาศของฉันถูกเรียกสองครั้ง ฉันต้องการให้เรียกเฉพาะเมื่อเครือข่ายพร้อมใช้งาน หากไม่สามารถใช้งานได้ฉันไม่ต้องการรับการแจ้งเตือน นี่คือตัวรับสัญญาณออกอากาศ public class NetworkChangeReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, final Intent intent) { final ConnectivityManager connMgr = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); final android.net.NetworkInfo wifi = connMgr .getNetworkInfo(ConnectivityManager.TYPE_WIFI); final android.net.NetworkInfo mobile = connMgr .getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (wifi.isAvailable() || mobile.isAvailable()) { // Do something …

10
ลงทะเบียนเครื่องรับสัญญาณออกอากาศโดยทางโปรแกรม
ฉันต้องการทราบว่าวิธีปฏิบัติที่ดีที่สุดคืออะไร / วิธีการลงทะเบียนเครื่องรับสัญญาณออกอากาศโดยทางโปรแกรม ฉันต้องการลงทะเบียนตัวรับเฉพาะตามตัวเลือกของผู้ใช้ เนื่องจากการลงทะเบียนเสร็จสิ้นผ่านไฟล์ Manifest ฉันจึงสงสัยว่ามีวิธีที่เหมาะสมในการทำรหัสนี้หรือไม่

6
การส่งและรับ SMS และ MMS ใน Android (ก่อน Kit Kat Android 4.4)
ฉันได้หาวิธีส่งและรับข้อความ SMS แล้ว ในการส่งข้อความ SMS ฉันต้องโทรไปที่sendTextMessage()และsendMultipartTextMessage()วิธีการของSmsManagerชั้นเรียน ในการรับข้อความ SMS ฉันต้องลงทะเบียนผู้รับในAndroidMainfest.xmlไฟล์ จากนั้นฉันต้องแทนที่onReceive()เมธอดของไฟล์BroadcastReceiver. ฉันได้รวมตัวอย่างไว้ด้านล่าง MainActivity.java public class MainActivity extends Activity { private static String SENT = "SMS_SENT"; private static String DELIVERED = "SMS_DELIVERED"; private static int MAX_SMS_MESSAGE_LENGTH = 160; // ---sends an SMS message to another device--- public static void sendSMS(String phoneNumber, String …

5
BroadcastReceiver.onReceive ทำงานในเธรด UI เสมอหรือไม่
ใน app ของฉันฉันสร้างที่กำหนดเองและลงทะเบียนกับบริบทของฉันด้วยตนเองผ่านทางBroadcastReceiver Context.registerReceiverฉันยังมีAsyncTaskที่ยื้อแจ้ง-Intent Context.sendBroadcastของผ่าน Intent ถูกส่งมาจากเธรดผู้ปฏิบัติงานที่ไม่ใช่ UI แต่ดูเหมือนว่าBroadcastReceiver.onReceive(ซึ่งได้รับ Intents ดังกล่าว) จะทำงานในเธรด UI เสมอ (ซึ่งดีสำหรับฉัน) สิ่งนี้รับประกันหรือไม่ควรพึ่งพาสิ่งนั้น?

2
BroadcastReceiver พร้อมตัวกรองหลายตัวหรือหลาย BroadcastReceivers?
ฉันมีกิจกรรม Android ที่ต้องรับการออกอากาศสองรายการที่แตกต่างกัน แนวทางปัจจุบันของฉันคือการมีซิงเกิลBroadcastReceiverภายในกิจกรรมและรับทั้งการออกอากาศด้วย: public class MyActivity extends Activity { private MyActivity.BroadcastListener mBroadcastListener; private boolean mIsActivityPaused = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mylayout); // Create the broadcast listener and register the filters mIsActivityPaused = false; mBroadcastListener = new BroadcastListener(); IntentFilter filter = new IntentFilter(); filter.addAction(Params.INTENT_REFRESH); filter.addAction(Params.INTENT_UPDATE); registerReceiver(mBroadcastListener, …

10
ผู้รับไม่ได้ลงทะเบียนข้อผิดพลาดข้อยกเว้น?
ในคอนโซลนักพัฒนาซอฟต์แวร์ของฉันมีผู้รายงานข้อผิดพลาดที่ฉันไม่สามารถทำซ้ำบนโทรศัพท์เครื่องใดก็ได้ มีคนหนึ่งฝากข้อความว่าได้รับเมื่อพวกเขาพยายามเปิดหน้าจอการตั้งค่าของบริการแบตเตอรี่ของฉัน ดังที่คุณเห็นจากข้อผิดพลาดมันบอกว่าเครื่องรับไม่ได้ลงทะเบียน java.lang.RuntimeException: Unable to stop service .BatteryService@4616d688: java.lang.IllegalArgumentException: Receiver not registered: com.app.notifyme.BatteryService$BatteryNotifyReceiver@4616d9d0 at android.app.ActivityThread.handleStopService(ActivityThread.java:3164) at android.app.ActivityThread.access$3900(ActivityThread.java:129) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2173) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:143) at android.app.ActivityThread.main(ActivityThread.java:4701) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalArgumentException: Receiver not registered:com..BatteryService$BatteryNotifyReceiver@4616d9d0 at android.app.ActivityThread$PackageInfo.forgetReceiverDispatcher(ActivityThread.java:805) at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:859) at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:331) …

7
Android - เริ่มบริการเมื่อบูต
จากทุกสิ่งที่ฉันเคยเห็นใน Stack Exchange และที่อื่น ๆ ฉันได้ตั้งค่าทุกอย่างอย่างถูกต้องเพื่อเริ่ม IntentService เมื่อระบบปฏิบัติการ Android บูท น่าเสียดายที่มันไม่ได้เริ่มต้นในการบูตและฉันไม่ได้รับข้อผิดพลาดใด ๆ บางทีผู้เชี่ยวชาญสามารถช่วย ... ประจักษ์: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.phx.batterylogger" android:versionCode="1" android:versionName="1.0" android:installLocation="internalOnly"> <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.BATTERY_STATS" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <service android:name=".BatteryLogger"/> <receiver android:name=".StartupIntentReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> </application> …

7
Android ตรวจจับเมื่อเปิดแอปอื่น ๆ
ฉันกำลังพยายามพัฒนาแอปที่ป้องกันไม่ให้ผู้ใช้เข้าถึงแอปที่ระบุโดยไม่มีรหัสผ่าน สถานการณ์คือ ... ผู้ใช้คลิกแอป "อีเมล" (เช่น) แอปของฉันตรวจพบการเปิดตัวแอป แอปของฉันยืนยันว่าเป็นแอป "อีเมล" แอพของฉันเปิดมุมมองที่ด้านบนขอรหัสผ่าน ผู้ใช้ป้อนรหัสผ่านหากถูกต้องแอปของฉันจะหายไปโดยปล่อยให้แอป "อีเมล" อยู่ด้านบน ฉันโอเคทำส่วนที่เหลือแค่ตอนที่ 2 ทำให้ฉันงงและหลังจากผ่านไปหลายวันอ่าน Broadcast Intents และอื่น ๆ และพยายามฟัง "android.intent.action.MAIN" และอื่น ๆ ในโครงการทดลองของฉันฉันทำไม่ได้ ดูเหมือนจะตรวจพบเมื่อแอปอื่นที่ไม่ใช่ของฉันเริ่มทำงาน ใครสามารถช่วย? ฉันกำลังไปในทางที่ถูกต้องในการมองหาแอพใหม่ที่ถ่ายทอดความตั้งใจที่จะเริ่มต้นหรือฉันควรอ่านบันทึกของระบบเพื่อหา Intent ใหม่หรือทำอะไรบางอย่างในเนทีฟโค้ด คำแนะนำใด ๆ จะช่วยได้แม้ว่าคุณจะไม่สามารถตอบได้ทั้งหมดฉันจะสามารถหาข้อมูลเพิ่มเติมได้ ขอบคุณมาก. เอียน

2
เครื่องรับสัญญาณภายในบริการ
ฉันกำลังพยายามเริ่มต้นBroadcastReceiverภายในไฟล์Service. สิ่งที่ฉันพยายามทำคือมีพื้นหลังที่กำลังทำงานserviceซึ่งรวบรวมข้อความขาเข้าและบันทึกการโทรเข้า ฉันคิดว่าวิธีที่ดีที่สุดในการดำเนินการนี้คือการserviceวิ่งที่มีเครื่องรับสัญญาณออกอากาศที่สามารถแคตตาล็อกได้ ฉันจะทำสิ่งนี้ได้อย่างไร? ฉันมีบริการของฉันอยู่แล้ว

2
ตรวจจับ SimCard เป้าหมายของการโทรเข้าในอุปกรณ์ Multi-Sim
ฉันได้อ่านบทความจำนวนมากและลองใช้วิธีแก้ไขปัญหาต่าง ๆ มากมาย แต่จุดร่วมของโพสต์ทั้งหมดก็คือพวกเขาทั้งหมดล้าสมัยและอย่างน้อยฉันก็ไม่พบวิธีแก้ปัญหาที่จะทำงานบน Android รุ่นใหม่กว่า โพสต์ 1 , ผลลัพธ์: intent.getExtras().getInt("simId", -1)ส่งคืน -1 เสมอ โพสต์ 2ผลลัพธ์: intent.getExtras().getInt("slot", -1)ส่งคืน -1 เสมอ โพสต์ 3ผล: String[] array = new String[]{ "extra_asus_dial_use_dualsim", "com.android.phone.extra.slot", "slot", "simslot", "sim_slot", "subscription", "Subscription", "phone", "com.android.phone.DialingMode", "simSlot", "slot_id", "simId", "simnum", "phone_type", "slotId", "slotIdx" }; for (String item : array) { …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.