2017-03-24 26 views
0

Sony Xperia、OnePlus 3、Lyf、Micromaxなどのデバイスで、自分のアプリが自動的に起動します。しかし、Xiaomiではありません。それから、StackOverflowで、Xiaomiのビルトインスタートアップマネージャーで自分のアプリに自動起動パーミッションを与える必要があることがわかりました。私もそれをやったが、私のアプリは自動起動しない。ここでは、マニフェストファイルである:小米科技は、ユーザーはアプリが自動的に起動できるようにするために持っているアプリの許可、(サービス)と呼ばれる機能を持っているのでXiaomiデバイスで自分のアプリの自動起動を有効にする方法

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.missingcell.trackerapp" 
    android:installLocation="internalOnly"> 

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

    <uses-permission android:name="android.permission.READ_CALL_LOG" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.READ_LOGS" /> 

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

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

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.USE_CREDENTIALS" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 

    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 

    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" /> 

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

    <!-- for card.io card scanning --> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.VIBRATE" /> 

    <uses-feature 
     android:name="android.hardware.camera" 
     android:required="false" /> 
    <uses-feature 
     android:name="android.hardware.camera.autofocus" 
     android:required="false" /> 

    <application 
     android:name="com.missingcell.trackerapp.AppController" 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme"> 

     <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="AIzaSyApCFp8fEsll0RO114zLWKQQ6EexTM488c" /> 

     <meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 

     <activity 
      android:name="com.missingcell.trackerapp.activities.Login" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name="com.missingcell.trackerapp.activities.ChildDetails" 
      android:label="@string/title_activity_second"> 
      <meta-data 
       android:name="android.support.PARENT_ACTIVITY" 
       android:value="com.missingcell.trackerapp.MainActivity" /> 
     </activity> 

     <service 
      android:name="com.paypal.android.sdk.payments.PayPalService" 
      android:exported="false" /> 

     <activity android:name="com.paypal.android.sdk.payments.PaymentActivity" /> 
     <activity android:name="com.paypal.android.sdk.payments.LoginActivity" /> 
     <activity android:name="com.paypal.android.sdk.payments.PaymentMethodActivity" /> 
     <activity android:name="com.paypal.android.sdk.payments.PaymentConfirmActivity" /> 
     <activity android:name="com.paypal.android.sdk.payments.PayPalFuturePaymentActivity" /> 
     <activity android:name="com.paypal.android.sdk.payments.FuturePaymentConsentActivity" /> 
     <activity android:name="com.paypal.android.sdk.payments.FuturePaymentInfoActivity" /> 
     <activity android:name="com.paypal.android.sdk.payments.PayPalProfileSharingActivity" /> 
     <activity android:name="com.paypal.android.sdk.payments.ProfileSharingConsentActivity" /> 

     <activity 
      android:name="io.card.payment.CardIOActivity" 
      android:configChanges="keyboardHidden|orientation" /> 
     <activity android:name="io.card.payment.DataEntryActivity" /> 


     <activity android:name="com.missingcell.trackerapp.MainActivity"></activity> 
     <activity android:name="com.missingcell.trackerapp.activities.RegisterActivity"></activity> 
     <activity android:name="com.missingcell.trackerapp.activities.BuyPro"></activity> 

     <receiver android:name="com.missingcell.trackerapp.call.AlarmReceiver"> 
      <intent-filter android:priority="9991000"> 
       <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 
       <action android:name="android.intent.action.PHONE_STATE" /> 
       <action android:name="in.deepakpandey.AlarmReceiver"></action> 
      </intent-filter> 
     </receiver> 

     <receiver android:name="com.missingcell.trackerapp.sms.SMSReceiver"> 
      <intent-filter android:priority="9991000"> 
       <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
       <action android:name="android.provider.Telephony.SMS_SENT" /> 
       <action android:name="in.deepakpandey.SMSReceiver" /> 
      </intent-filter> 
     </receiver> 

     <receiver 
      android:name=".gps.GpsTrackerBootReceiver" 
      android:enabled="true" 
      android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
       <action android:name="android.intent.action.QUICKBOOT_POWERON" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </receiver> 

     <receiver android:name="com.missingcell.trackerapp.gps.GPSReciver"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
       <action android:name="android.intent.action.QUICKBOOT_POWERON" /> 
      </intent-filter> 
     </receiver> 

     <receiver 
      android:name="com.missingcell.trackerapp.utils.APIReciver" 
      android:enabled="true" 
      android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> 
      <intent-filter android:priority="9991000"> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
       <action android:name="android.intent.action.QUICKBOOT_POWERON" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </receiver> 

     <receiver android:name="com.missingcell.trackerapp.utils.NotificationReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
       <action android:name="android.intent.action.QUICKBOOT_POWERON" /> 
      </intent-filter> 
     </receiver> 

     <receiver 
      android:name="com.missingcell.trackerapp.utils.DemoDeviceAdmin" 
      android:permission="android.permission.BIND_DEVICE_ADMIN"> 
      <intent-filter> 
       <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> 
      </intent-filter> 
      <!-- This is required this receiver to become device admin component. --> 
      <meta-data 
       android:name="android.app.device_admin" 
       android:resource="@xml/device_admin" /> 
     </receiver> 

     <service 
      android:name="com.tuenti.smsradar.SmsRadarService" 
      android:exported="false" 
      android:label="@string/app_name" /> 

    </application> 

</manifest> 
+0

私はこれらの回答もチェックしましたが、私の評判が低いためコメントできません[リンク](http://stackoverflow.com/questions/34149198/how-to-enable-auto-start-for-my-app- in-xiaomi-programmatically ) –

答えて

2

は、それは小米科技の新しいません。あなたのケースでは、Serviceは一度スタックから終了すると呼び出されません。

このように移動し、自動起動にアプリを許可:

Settings > permissions > Autostart

コード:

if (Build.BRAND.equalsIgnoreCase("xiaomi")) { 
       Intent intent = new Intent(); 
       intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity")); 
       startActivity(intent); 
      } 

は自動アクティビティを起動するために上記のコードを使用してください。

+0

私は私の質問で、私はそれをやったことを言ったが、アプリはまだ再起動しません。質問の下の私の質問とコメントを見てください。 –

+0

また、自動起動の許可を与えた後でもこのコードを追加する必要がある場合は、どこにこの情報を含めるべきかを教えてください。 –

関連する問題