2016-07-31 2 views
1

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

Я надеюсь, что поможет вам получить то, что я говорю о enter image description here

Edit 8/5/2016: создать приоритетную услугу, но я не знаю, как обнаружить мягкую клавиатуру другие приложения

MainActivity.java

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Intent SERVICE_INTENT = new Intent(this,MyServiceTest.class); 
     startService(SERVICE_INTENT); 
    } 
} 

MyServiceTest.java

import android.app.Notification; 
import android.app.PendingIntent; 
import android.app.Service; 
import android.content.Intent; 
import android.os.IBinder; 
import android.support.annotation.Nullable; 


public class MyServiceTest extends Service { 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     Intent MAIN_INTENT = new Intent(this,MainActivity.class); 
     PendingIntent myPendingIntent = PendingIntent.getActivity(this,0,MAIN_INTENT,0); 
     Notification myNotification = new Notification.Builder(this).setContentTitle("Title") 
       .setContentText("The Content text").setSmallIcon(R.mipmap.ic_launcher) 
       .setWhen(System.currentTimeMillis()).setContentIntent(myPendingIntent) 
       .build(); 
     startForeground(1337,myNotification); 
    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 

     Thread myThread = new Thread(new Runnable() { 
      @Override 
      public void run() { 
      } 
     }); 
     myThread.start(); 
     return START_STICKY; 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
    } 

    @Nullable 
    @Override 
    public IBinder onBind(Intent intent) { 
     return null; 
    } 
} 

AndroidManifest.xml

<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" 
      android:windowSoftInputMode="stateHidden|adjustPan"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <service android:name=".MyServiceTest"> 
     </service> 
    </application> 

Любая информация или идея может быть полезно, заранее спасибо^_^

+0

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

+0

Итак, единственное решение - создать собственную клавиатуру приложения! –

+0

Да, это ваш единственный вариант. – Shaishav

ответ

0

Я считаю, что это то, что вы хотите: android:windowSoftInputMode="stateHidden|adjustPan"

Добавьте его вашей деятельности в вашем манифесте.

Пример:

<activity 
     android:name="activities.WorkObjectActivity" 
     android:windowSoftInputMode="stateHidden|adjustPan"//This one 
     android:label="@string/urenToevoegen" 
     android:screenOrientation="portrait" 
     android:parentActivityName="activities.MainActivity"/> 
+0

Это то, что вам нужно? –

+0

не могли бы вы объяснить это больше и дать мне простой пример, потому что я новичок в разработке Android –

+0

. Проверьте мой пример –

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