Принудительное закрытие при попытке сделать телефонный звонок - PullRequest
0 голосов
/ 27 августа 2011

Я пытаюсь сделать телефонный звонок по нажатию элемента списка.

Вот мой код для прослушивателя onclick:

    lv.setOnItemClickListener(new OnItemClickListener() { 
         public void onItemClick(AdapterView<?> parent, View view, 
             int position, long id) { 

             Intent intent = new Intent(Intent.ACTION_CALL);

             intent.setData(Uri.parse("tel:5173237929"));

             startActivity(intent); 
         } 
       });

А вот разрешение, которое у меня есть в моемманифест:

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

Почему это не работает, мне не под силу .... Я создаю намерение и запускаю его, а затем оно принудительно закрывается, когда я проверяю его ???Я чувствую, что вы, ребята в стеке, можете решить эту проблему без проблем =)

Редактировать:

    [2011-08-27 09:43:00 - HelloListView] ------------------------------
    [2011-08-27 09:43:00 - HelloListView] Android Launch!
    [2011-08-27 09:43:00 - HelloListView] adb is running normally.
    [2011-08-27 09:43:00 - HelloListView] Performing com.hlv.kk.HelloListView activity launch
    [2011-08-27 09:43:04 - HelloListView] WARNING: Application does not specify an API levelrequirement!
    [2011-08-27 09:43:04 - HelloListView] Device API version is 8 (Android 2.2.2)
    [2011-08-27 09:43:05 - HelloListView] Application already deployed. No need to reinstall.
    [2011-08-27 09:43:05 - HelloListView] Starting activity com.hlv.kk.HelloListView on device 04036CA51900D00F
    [2011-08-27 09:43:05 - HelloListView] ActivityManager: Starting: Intent {  act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]          cmp=com.hlv.kk/.HelloListView }

Редактировать # 2:

    09-02 20:25:06.874: INFO/ActivityManager(6146): Starting activity: Intent { act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity (has extras) }
    09-02 20:25:07.030: INFO/ActivityManager(6146): Starting activity: Intent { act=android.intent.action.CALL dat=tel:5173237929 flg=0x3000000 cmp=com.android.phone/.OutgoingCallBroadcaster }
    09-02 20:25:07.045: WARN/ActivityManager(6146): Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:5173237929 flg=0x3000000 cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{44a5f890 8386:com.hlv.kk/10051} (pid=8386, uid=10051) requires android.permission.CALL_PHONE
    09-02 20:25:07.061: DEBUG/AndroidRuntime(8386): Shutting down VM
    09-02 20:25:07.061: WARN/dalvikvm(8386): threadid=1: thread exiting with uncaught exception (group=0x4001d7e0)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386): FATAL EXCEPTION: main
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386): java.lang.RuntimeException: Unable to start activity ComponentInfo{android/com.android.internal.app.ChooserActivity}: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:5173237929 flg=0x3000000 cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{44a5f890 8386:com.hlv.kk/10051} (pid=8386, uid=10051) requires android.permission.CALL_PHONE
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.os.Handler.dispatchMessage(Handler.java:99)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.os.Looper.loop(Looper.java:123)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.app.ActivityThread.main(ActivityThread.java:4627)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at java.lang.reflect.Method.invokeNative(Native Method)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at java.lang.reflect.Method.invoke(Method.java:521)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at dalvik.system.NativeStart.main(Native Method)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386): Caused by: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:5173237929 flg=0x3000000 cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{44a5f890 8386:com.hlv.kk/10051} (pid=8386, uid=10051) requires android.permission.CALL_PHONE
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.os.Parcel.readException(Parcel.java:1247)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.os.Parcel.readException(Parcel.java:1235)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1298)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1373)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.app.Activity.startActivityForResult(Activity.java:2817)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.app.Activity.startActivity(Activity.java:2923)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at com.android.internal.app.ResolverActivity.onCreate(ResolverActivity.java:95)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at com.android.internal.app.ChooserActivity.onCreate(ChooserActivity.java:54)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
    09-02 20:25:07.100: ERROR/AndroidRuntime(8386):     ... 11 more
    09-02 20:25:07.147: WARN/ActivityManager(6146):   Force finishing activity android/com.android.internal.app.ChooserActivity
    09-02 20:25:07.147: WARN/ActivityManager(6146):   Force finishing activity com.hlv.kk/.HelloListView
    09-02 20:25:07.647: WARN/ActivityManager(6146): Activity pause timeout for HistoryRecord{44ad1490 android/com.android.internal.app.ChooserActivity}
    09-02 20:25:07.819: INFO/ActivityManager(6146): No longer want com.google.android.gallery3d (pid 8199): hidden #16
    09-02 20:25:10.210: INFO/Process(8386): Sending signal. PID: 8386 SIG: 9
    09-02 20:25:10.217: INFO/ActivityManager(6146): Process com.hlv.kk (pid 8386) has died.
    09-02 20:25:10.217: INFO/WindowManager(6146): WIN DEATH: Window{44a05de8 com.hlv.kk/com.hlv.kk.HelloListView paused=false}
    09-02 20:25:10.264: WARN/InputManagerService(6146): Got RemoteException sending setActive(false) notification to pid 8386 uid 10051
    09-02 20:25:12.092: INFO/WindowManager(6146): Setting rotation to 3, animFlags=0
    09-02 20:25:12.116: INFO/ActivityManager(6146): Config changed: { scale=1.0 imsi=310/4 loc=en_US touch=3 keys=2/1/2 nav=2/2 orien=2 layout=34 uiMode=17 seq=45}
    09-02 20:25:12.163: INFO/UsageStats(6146): Unexpected resume of com.android.launcher while already resumed in com.android.launcher
    09-02 20:25:13.186: DEBUG/dalvikvm(6224): GC_EXPLICIT freed 11518 objects / 579136 bytes in 69ms

Ответы [ 2 ]

0 голосов
/ 03 сентября 2011

Я забыл добавить разрешение = /

Моя ошибка lol

Но для людей, которые запинаются на этой странице, если у вас возникли те же проблемы, убедитесь, что вы добавили:

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

К вашему файлу манифеста прямо над закрывающим тегом манифеста

    </manifest>

В конце вашего файла манифеста

Извините всех, кто потратил ваше время

0 голосов
/ 27 августа 2011

Попробуйте это:

startActivity(Intent.createChooser(intent, "phone"));

вместо startActivity(intent)

EDIT

Просто предположение, но убедитесь, что ваше разрешение находится вне тега приложения:

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