簡體   English   中英

如何將傳入號碼顯示為 Toast?

[英]How can I display the incoming number as a Toast?

我必須為學校制作一個簡單的應用程序。

接到電話時,它必須顯示敬酒。

電話接收器不顯示任何內容。

我的清單中有這個,所以權限不應該是問題

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

        <receiver
            android:name=".ReceptorLlamadas"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE"/>
            </intent-filter>
        </receiver>

我的廣播接收器的代碼

public class ReceptorLlamadas extends BroadcastReceiver {

    Context context;
    @Override
    public void onReceive(Context c, Intent intent) {
       try {
           TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

           LlamadaListener listener = new LlamadaListener();
           manager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);          

       } catch (Exception e) {
           Log.e("PhoneCallError", "onReceive: ", e);
       }
    }

    private class LlamadaListener extends PhoneStateListener {

        public void onCallStateChanged(int state, String phoneNumber) {
            if (state == 1) {
                String mensaje = "Llamada entrante del número: " + phoneNumber;
                int duracion = Toast.LENGTH_LONG;

                Toast toast = Toast.makeText(context, mensaje, duracion);
                toast.show();
            }
        }
    }
}

對不起,如果我搞砸了格式

編輯:忘記包含一些代碼

您需要在 Android Manifest 中聲明廣播接收器,就像在Application標簽中一樣:

<receiver
    android:name=".ReceptorLlamadas"
    android:enabled="true" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM