2014-09-06 3 views
0

Я только начал играть с сервисами на Android, и я пытаюсь сделать скрытое приложение, которое отключает телефон при запуске. Я следил за этой веткой: Android hidden applicationСлужба скрытого приложения при запуске не работает

Он не показывает никаких ошибок, но служба не вызывает вызов semm при запуске.

Это мой Android/манифеста

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.timer" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="19" /> 

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



<application android:label="@string/app_name" android:icon="@drawable/ic_launcher"> 

     <receiver android:name="org.example.timer.serviceCode" > 
       <intent-filter > 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
       </intent-filter> 
     </receiver> 
     <service android:name="org.example.timer.service" /> 
</application> 

Кроме того, мой serviceCode: `

package com.example.timer; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 

public class serviceCode extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 

    Intent i = new Intent("com.example.service"); 
     i.setClass(context, serviceCode.class); 
     context.startService(i); 
} 

} 

И моя служба:

package com.example.timer; 

import android.app.Service; 
import android.content.Context; 
import android.content.Intent; 
import android.media.AudioManager; 
import android.os.IBinder; 

public class service extends Service { 
    private AudioManager myAudioManager; 

    @Override 
public IBinder onBind(Intent intent) { 
    // TODO Auto-generated method stub 
    return null; 
} 
@Override 
public void onCreate() { 
     super.onCreate(); 
     myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
     myAudioManager.setStreamMute(AudioManager.STREAM_ALARM, true); 
     myAudioManager.setStreamMute(AudioManager.STREAM_MUSIC, true); 
     myAudioManager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true); 
     myAudioManager.setStreamMute(AudioManager.STREAM_RING, true); 
     myAudioManager.setStreamMute(AudioManager.STREAM_SYSTEM, true); 
} 
} 

Я своего рода замешательстве becouse я следовал и ничего не происходит. Когда я включаю телефон, звук находится на одном значении. Я также попытался поставить там тост, чтобы узнать, даже начинается ли сервис, но он не появился.

Мой LogCat:

[2014-09-06 16:13:46 - timer] ------------------------------ 
[2014-09-06 16:13:46 - timer] Android Launch! 
[2014-09-06 16:13:46 - timer] adb is running normally. 
[2014-09-06 16:13:46 - timer] No Launcher activity found! 
[2014-09-06 16:13:46 - timer] The launch will only sync the application package on the device! 
[2014-09-06 16:13:46 - timer] Performing sync 
[2014-09-06 16:13:47 - timer] Uploading timer.apk onto device '0c295416' 
[2014-09-06 16:13:47 - timer] Installing timer.apk... 
[2014-09-06 16:13:49 - timer] Success! 
[2014-09-06 16:13:49 - timer] \timer\bin\timer.apk installed on device 
[2014-09-06 16:13:49 - timer] Done! 

Спасибо за помощь.

ответ

-1

проверить имена пакетов в вашем AndroidManifest.

Вы регистрируетесь приемник с андроида: Name = "org.example.timer.serviceCode", но в Java класс пакет пакет "com.example.timer"

UPD:

сначала вы должны создать деятельность и запустить его хотя бы один раз. http://commonsware.com/blog/2011/07/05/boot-completed-regression.html

Я просто проверяю его самостоятельно - работает хорошо.

+0

Работает ли после запуска? – ant

+0

На самом деле я пытаюсь сделать приложение, которое автоматически отключает мой телефон в школьное время. Я не хочу, чтобы это приложение отображалось в списке приложений, потому что я ненавижу бесполезные значки. Вот почему я решил сделать приложение, которое скрыто, не имеет никакой активности. Я хотел бы знать, есть ли способ сделать это возможным. Жаль, что это так, потому что скрытые приложения - единственное, что может изменить систему, например Task Scheduler для Windows. Я был бы рад, если бы вы могли рекомендовать мне способ сделать это. Также у меня есть встроенный телефон, поэтому, если есть что-то, пожалуйста, поделитесь им. Но все равно спасибо. – user3000140

+0

Есть ли способ имитировать взаимодействие с пользователем, чтобы приложение было остановлено после установки? Или есть способ сделать операцию удаленной после запуска и оставить службу запущенной, пока приложение скрыто? – user3000140

Смежные вопросы