마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

브로드캐스트 SendReciver 질문합니다.

0 추천

처음으로 브로드캐스트 리시버를 공부 하고있는대, 자꾸 sendReciver에서 오류가 납니다. 블로그를 보고 따라 하고 있는 거지만 왜 이런 오류가 나는지 궁금해가지고 질문 드립니다.

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Intent intent =new Intent();
        intent.setAction("android.intent.action.HEADSET_PLUG");
        sendBroadcast(intent);
    }
}
10-12 11:16:35.247 27055-27055/com.example.cyber.boradcasettest E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                  Process: com.example.cyber.boradcasettest, PID: 27055
                                                                                  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.cyber.boradcasettest/com.example.cyber.boradcasettest.MainActivity}: java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.HEADSET_PLUG from pid=27055, uid=10254
com.example.cyber.boradcasettest.MainActivity.onCreate(MainActivity.java:15)
Manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.cyber.boradcasettest">

    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS_SETTINGS"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".Receiver">
            <intent-filter>
                <action android:name="android.intent.action.HEADSET_PLUG">
                </action>
            </intent-filter>
        </receiver>
    </application>

</manifest>
 
뭐가 문제인건가여 .. sendReciver에서 자꾸 에러라고 하는대, 권한을 추가해 보아도 안되내여 ..ㅠㅠ
프리라인 (360 포인트) 님이 2017년 10월 12일 질문

1개의 답변

+1 추천
1. android.intent.action.HEADSET_PLUG 는 일반앱이 보낼 수 없습니다.

2. 질문을 할 때는 오류로그 전체를 올려야 답변하는 사람이 좀 더 정확하게 답변할 수 있습니다.
익명사용자 님이 2017년 10월 12일 답변
오류로그를 전부 올리라 하였는대.. 제한이 있더라고요 죄송합니다 ㅠㅠ
...