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

브로드캐스트 문제가있습니다 ㅠㅠㅠㅠ

0 추천

앱을 실행 하면, 에러가 뜨는대, 리시버는 잘 작동이 됩니다. 왜그런건가여 ?? 소스와 에러 로그 올립니다.

소스

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.ACTION_POWER_CONNECTED");
        sendBroadcast(intent);
    }
}

public class Receiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        String name = intent.getAction();

        if(name.equals("android.intent.action.ACTION_POWER_CONNECTED"))
            Toast.makeText(context,"테스트 성공",Toast.LENGTH_LONG).show();

    }
}

 

빨간색이 문제의 15번 줄 입니다 왜그런건가여 ?? Read_PHONE_STATE 권한도 주고 ,BAttery_STATS 권한도 줬는대 뭐가 문재인건가여?

프리라인 (360 포인트) 님이 2017년 10월 17일 질문
Google API 언급된 내용을 보니 하기와 같이 되어 있네요

"This is a protected intent that can only be sent by the system."
그러면, intent 를 다른 메소드를 만들어서 하면 되는걸까요 ??

1개의 답변

0 추천
에러 로그

10-17 10:55:27.549 23336-23336/? E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.example.cyber.boradcasettest, PID: 23336 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.ACTION_POWER_CONNECTED from pid=23336, uid=10254 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751)
                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2812)
                                                       at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528)
                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                       at android.os.Looper.loop(Looper.java:154)
                                                       at android.app.ActivityThread.main(ActivityThread.java:6317)
                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
                                                    Caused by: java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.ACTION_POWER_CONNECTED from pid=23336, uid=10254
                                                       at android.os.Parcel.readException(Parcel.java:1683)
                                                       at android.os.Parcel.readException(Parcel.java:1636)
                                                       at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:3605)
                                                       at android.app.ContextImpl.sendBroadcast(ContextImpl.java:883)
                                                       at android.content.ContextWrapper.sendBroadcast(ContextWrapper.java:421)
프리라인 (360 포인트) 님이 2017년 10월 17일 답변
at com.example.cyber.boradcasettest.MainActivity.onCreate(MainActivity.java:15)
                                                       at android.app.Activity.performCreate(Activity.java:6757)
                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2704)
                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2812)
                                                       at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528)
                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                       at android.os.Looper.loop(Looper.java:154)
                                                       at android.app.ActivityThread.main(ActivityThread.java:6317)
                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
이게 에러로그 입니다 ㅠㅠ
...